武汉大学上机题
题目一描述:
给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit 0-9)各出现了多少次。
例如输入:
1 99
输出:
9 20 20 20 20 20 20 20 20 20
算法思想:
对a和b之间的所有数进行逐个分析,拆分各个数字的所有位,对数码出现的次数进行统计。
#include<iostream>
using namespace std;
int main() {
int a, b;
cout << "输入范围:";
cin >> a >> b;
int num[10] = {
0,0,0,0,0,0,0,0,0,0 };//定义一个数组存储0-9数字每个数的出现次数
for (int i = a;i <= b;i++) {
int j = i;
while (j / 10) {
//拆开数字的每一位
num[j % 10]++;
j = j / 10;
}
num[j]++;
}
cout << "result:" << endl;
for (int i = 0;i < 10;i++)
cout << num[i] << '\t';
cout << endl;
return 0;
}
运行测试:
题目二描述:
输出一个整数n(0<n<10),显示n行如下规律图形。
例如输入3,显示:
1
2 3
4 5 6
例如输入5,显示:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
#include