您的位置:首页 > 其它

4 数字加密 (15分)——一维数组

2017-03-07 20:32 127 查看
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 <stdio.h>
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  一维数组