某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
然后,把加密后的结果在控制台打印出来。
题目要求:
A:数据是小于8位的整数
定义一个int类型的数据
int number = 123456;
B:加密规则
a:首先将数据倒序
结果 654321
b:然后将每位数字都加上5,再用和除以10的余数代替该数字
结果 109876
c:最后将第一位和最后一位数字交换
结果 609871
C:把加密后的结果输出在控制台
整型 – 数组
#include <stdio.h>
void Int_Array(int num,int array[])
{
int i=0;
while(num)
{
array[i] = num % 10;
num /= 10;
++i;
printf("%d",array[i]);
}
}
数组 – 整型
int Array_Int(int array[],int len)
{
int i=0;
int num=0;
for(i=0;i<len;++i)
{
num = num*10 +array[i]; //1,2,3 ===> 123
// num+=a[i]*10^i;
}
}
加密
int JiaMi(int array[], int len)
{
int i;
int tmp;
for(i=0;i<len/2;++i)
{
tmp = array[i];
array[i] = array[len-i-1];
array[len-i-1] = tmp;
}
for(i=len-1;i>=0;--i)
{
tmp=array[i]+5;
array[i]=tmp%10;
}
tmp=array[len-1];
array[len-1]=array[0];
array[0]=tmp;
for(i=0;i<len;++i)
{
printf("%d",array[i]);
}
}
解密
int jieMi(int array[],int len)
{
int i=0;
int tmp;
tmp = array[len-1];
array[len-1] = array[0];
array[0] = tmp;
for(i=0;i<len;++i)
{
tmp = array[i]+5;
array[i] = tmp%10;
}
for(i=0;i<len/2;++i)
{
tmp = array[i];
array[i] = array[len-i-1];
array[len-i-1] = tmp;
}
for(i=0;i<len;++i)
{
printf("%d",array[i]);
}
}
int main()
{
char array[100] = [ ];
int len = strLen(array);
int num;
printf ("len = %d\n", len);
printf ("please input a integer:");
scanf ("%d", &num);
Int_Array(num,array);
Array_Int(array,len);
jiaMi(array,len);
jieMi(array,len);
}