think:
1晚上幸亏补题了,要不我的内心估计就留下阴影了,题目真的让我很受伤,明明说了输入一个四位数,呜呜呜,怎么会有前导0这组数据呢,天梯赛的时候自己将输入的数用一个变量存储,然后通过while循环分离出4位,然后通过整型数组存放,通过自己懒投机取巧发现的一个小规律,没思考运算后用一个变量存储输出了,今天晚上看到测试数据的类型后,自己终于明白哪里错了
测试点1 答案正确 9/9 2 1 sample等价,转换中间有前导0
测试点2 答案正确 3/3 1 1 输入有前导0
测试点3 答案正确 3/3 2 1 输出有前导0
2反思:多思考
4 数字加密 (15分)
输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。
输入格式:
输入在一行中给出一个四位的整数x,即要求被加密的数。
输出格式:
在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。
输入样例:
1257
输出样例:
The encrypted number is 4601
以下为答案正确代码
#include
int main()
{
int x, t;
int a[14];
while(scanf("%d", &x) != EOF)
{
a[0] = x/1000;
a[1] = (x/100)%10;
a[2] = (x/10)%10;
a[3] = x%10;
for(int i = 0; i < 4; i++)
{
a[i] = (a[i] + 9)%10;
}
t = a[0], a[0] = a[2], a[2] = t;
t = a[1], a[1] = a[3], a[3] = t;
printf("The encrypted number is ");
for(int i = 0; i < 4; i++)
{
printf("%d", a[i]);
}
printf("\n");
}
return 0;
}