输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。
输入格式:
输入在一行中给出一个四位的整数x,即要求被加密的数。
输出格式:
在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。
代码
#include <stdio.h>
int main()
{
int a,b,c,d;
scanf("%d",&a);
d=a%10;
a/=10;
c=a%10;
a/=10;
b=a%10;
a/=10;
a=(a+9)%10;
b=(b+9)%10;
c=(c+9)%10;
d=(d+9)%10;
a=1000*c+100*d+10*a+b;
printf("The encrypted number is %04d",a);
}
运行结果
这个题目虽然看起来不难,但是最开始我感觉这个题好像可以不用数组就可以做出来,而且感觉定义数组还要有多的变量,比较麻烦,决定用4个简单的变量代替,代码写出来之后,发现那个输出有前导0始终做不到,之前找相关文章除了用数组,像我这种做法好像都无法解决这个问题,于是又来百度输出有前导0是什么意思,就将%d改为了%04d,成功!