题目1:自然数序列求和
问题描述
输入一个正整数n,计算从1到n之间所有自然数的累加和。
输入样例
5
输出样例
和为=15
参考代码
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入一个整数:";
cin >> n;
int i = 1, sum = 0;
while (i <= n) {
sum += i;
i++;
}
cout << "和为=" << sum << endl;
return 0;
}
题目2:数字位数统计
问题描述
输入一个整数(可能为负数),输出其绝对值包含的位数(负号不计入位数)。
输入样例
-1234
输出样例
该数为4位数
参考代码
#include <iostream>
using namespace std;
int main() {
int n, i = 0;
cout << "请输入数字:";
cin >> n;
n = abs(n); // 取绝对值
while (n != 0) {
n /= 10;
i++;
}
cout << "该数为" << i << "位数" << endl;
return 0;
}
题目3:动态步长游泳训练
问题描述
小明的初始游泳步长为2米,每次游完后步长衰减为前一次的98%。输入泳池总长度n(单位:米,double类型),计算他需要多少次才能游完。
输入样例
10
输出样例
6
参考代码
#include <iostream>
using namespace std;
int main() {
double n;
cin >> n;
double len_s = 2, len_a = 0;
int i = 1;
while (true) {
len_a += len_s;
if (len_a >= n) {
cout << i;
break;
}
len_s *= 0.98;
i++;
}
return 0;
}
题目4:复利投资年限计算
问题描述
某投资本金为60000元,年利率6%,每年利息加入本金继续生息。计算总收益(本金+利息)超过80000元所需的年限。
输入样例
(无输入)
输出样例
5
参考代码
#include <iostream>
using namespace std;
int main() {
int y = 0;
double a = 60000, s = 60000;
while (s <= 80000) {
s += a * 0.06;
a *= 1.06;
y++;
}
cout << y << endl;
return 0;
}
题目5:数字构造数列求和
问题描述
输入两个正整数n和a,构造数列:a, aa, aaa, ..., 共n项(例如a=2, n=3时数列为2, 22, 222),求数列所有项的和。
输入样例
3 2
输出样例
sum=246
参考代码
#include <iostream>
using namespace std;
int main() {
int n, a, sum = 0, b;
cout << "请输入n a的值:";
cin >> n >> a;
b = a;
int i = 0;
while (i < n) {
sum += a;
a = a * 10 + b;
i++;
}
cout << "sum=" << sum;
return 0;
}
题目6:人口增长预测模型
问题描述
假设当前世界人口为70亿,年增长率为0.1%,计算50年后的人口总量(保留两位小数)。
输入样例
(无输入)
输出样例
73.58
参考代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double sum = 70;
int i = 1;
while (i <= 50) {
sum *= 1.001;
i++;
}
cout << fixed << setprecision(2) << sum;
return 0;
}
题目7:弹跳小球总距离计算
问题描述
小球从高度h米下落,每次触地后反弹至原高度的一半。计算小球在10次触地过程中经过的总距离(包含下落和反弹)。
输入样例
10
输出样例
29.9219
参考代码
#include <iostream>
using namespace std;
int main() {
double h;
while (cin >> h) {
double sum = 0.0;
int n = 10;
while (n--) {
sum += h + h / 2;
h /= 2;
}
cout << sum << endl;
}
return 0;
}