2025年全国青少年信息素养大赛复赛C++算法创意实践挑战赛真题模拟强化训练(试卷3:共计6题带解析)
2025年全国青少年信息素养大赛复赛C++算法创意实践挑战赛真题模拟强化训练(试卷3:共计6题带解析)
第1题:四位数密码
【题目描述】
情报员使用4位数字来传递信息,同时为了防止信息泄露,需要将数字进行加密。数据加密的规则是:
- 每个数字都进行如下处理:该数字加上5之后除以10的余数,替换原数字;
- 将处理后第一位数字与第三位数字进行交换,第二位数字与第四位数字进行交换;
- 现在任意输入一个四位数n(1000 <= n <= 9999),输出加密之后的数字。
【输入描述】
一个四位数
【输出描述】
加密后的四位数
【输入样例】
1234
【输出样例】
8967
AC代码
#include<bits/stdc++.h>
using namespace std;
int n; int main(){ cin >> n; // 输入四位数n// 分解各位数字并进行加密处理int g = (n % 10 + 5) % 10; // 处理个位(原数的第四位)n /= 10; // 移除已处理的个位int s = (n % 10 + 5) % 10; // 处理十位(原数的第三位)n /= 10; int b = (n % 10 + 5) % 10; // 处理百位(原数的第二位)n /= 10;int q = (n % 10 + 5) % 10; // 处理千位(原数的第一位)// 交换第一位和第三位(q和s交换)swap(q, s);// 交换第二位和第四位(b和g交换)swap(b, g);// 输出加密后的结果,顺序为q b s g(交换后的新四位)cout << q << b << s << g;return 0;
}
功能分析
-
输入处理
- 程序读取一个四位数n,如1234。
-
逐位处理: