某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上9,然后用和除以6的余数代替该数字,再将第一位和第二位交换,第四位和第三...
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上9,然后用和除以6的余数代替该数字,再将第一位和第二位交换,第四位和第三位交换
展开
1个回答
展开全部
#include <stdio.h>
int code(int in);//加密
int decode(int in);//解密
int main ()
{
int in;
scanf("%d",&in);
int result = code(in);
printf("加密:%d\n",result);
printf("解密:%d\n",decode(result));
return 0;
}
int code(int in)
{
int result;
int m[4];
int n,i;
for (i=0;i<4;i++)
{
m[i] = in%10;
m[i] += 5;
m[i] %= 10;
in /= 10;
}
n = m[0];
m[0] = m[3];
m[3] = n;
n = m[1];
m[1] = m[2];
m[2] = n;
result = m[0]+m[1]*10+m[2]*100+m[3]*1000;
return result;
}
int decode(int in)
{
int result;
int m[4];
int n,i;
for (i=0;i<4;i++)
{
m[i] = in%10;
m[i] = (m[i]>=5 ? m[i]-5:m[i]+5);
in /= 10;
}
n = m[0];
m[0] = m[3];
m[3] = n;
n = m[1];
m[1] = m[2];
m[2] = n;
result = m[0]+m[1]*10+m[2]*100+m[3]*1000;
return result;
}
请采纳。
int code(int in);//加密
int decode(int in);//解密
int main ()
{
int in;
scanf("%d",&in);
int result = code(in);
printf("加密:%d\n",result);
printf("解密:%d\n",decode(result));
return 0;
}
int code(int in)
{
int result;
int m[4];
int n,i;
for (i=0;i<4;i++)
{
m[i] = in%10;
m[i] += 5;
m[i] %= 10;
in /= 10;
}
n = m[0];
m[0] = m[3];
m[3] = n;
n = m[1];
m[1] = m[2];
m[2] = n;
result = m[0]+m[1]*10+m[2]*100+m[3]*1000;
return result;
}
int decode(int in)
{
int result;
int m[4];
int n,i;
for (i=0;i<4;i++)
{
m[i] = in%10;
m[i] = (m[i]>=5 ? m[i]-5:m[i]+5);
in /= 10;
}
n = m[0];
m[0] = m[3];
m[3] = n;
n = m[1];
m[1] = m[2];
m[2] = n;
result = m[0]+m[1]*10+m[2]*100+m[3]*1000;
return result;
}
请采纳。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询