输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。
输入格式:
输入在一行中给出一个四位的整数x,即要求被加密的数。
输出格式:
在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。
输入样例:
1257
输出样例:
The encrypted number is 4601
代码实现
#include<stdio.h>
#define MAXN 4
int swap(int *a,int *b){
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
int main(){
int x,i,result,count=0;//用count累计转换次数,避免有输入有前导0的情况导致循环提前结束
int a[MAXN];
scanf("%d",&x);
//1257----a[]={0,1,4,6}
i=MAXN-1;
do{
a[i--]=(x%10+9)%10;
x/=10;
count++;
}while(count!=4);
//两次交换
swap(&a[3],&a[1]);
swap(&a[2],&a[0]);
result=a[0]*1000+a[1]*100+a[2]*10+a[3];
printf("The encrypted number is %04d",result);
return 0;
}