C语言经典例89-数据加密

1 题目

某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

2 分析

观察发现对数的加密是按其位数操作的,所以首先要将其各个位数分解出来,这里采用除余法,将每个数放在一个数组中,就把问题转换为了对数组中某个元素的操作了。

3 实现

#include <stdio.h>
 
int main()
{
    int a, i, aa[4], t;
    printf("请输入四位数字:");
    scanf("%d", &a);
    aa[0] = a % 10; // 分解出第一位
    aa[1] = a % 100 / 10; // 分解出第二位
    aa[2] = a % 1000 / 100; // 分解出第三位
    aa[3] = a / 1000; // 分解出第四位
    for (i = 0; i <= 3; i++) {
        aa[i] += 5; // 每位数字都加上5
        aa[i] %= 10; // 用和除以10的余数代替该数字
    }
    // 交换
    for (i = 0; i <= 3/2; i++) {
        t = aa[i]; 
        aa[i] = aa[3-i];
        aa[3-i] = t;
    }
    printf("加密后的数字:");
    for (i = 3; i >= 0; i--) {
        printf("%d", aa[i]);
    }
    printf("\n");
}

4 运行结果

请输入四位数字:1234
加密后的数字:9876
发布了125 篇原创文章 · 获赞 199 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/syzdev/article/details/104429802