例29.1
for循环遍历1至n,累计求乘积
注意:计数从1开始,否则后果你尝试一下就知道啦!
#include <iostream>
using namespace std;
int main() {
int n;
long long a = 1;
cin >> n;
for (int i = 1;i <= n;i++)
a *= i;
cout << a;
return 0;
}
例29.2
解题思路:
1.从输入中读取两个整数a和b。
2.初始化一个整数变量x为1,用于存储幂的计算结果。
3.使用for循环,从1到b,计算a的b次方。在每次循环中,将x乘以a,并将结果模1000,以获取末三位数字。
4.使用setw和setfill格式化输出,确保输出宽度为3,不足时在前面补零。输出x的值,即幂ab的末3位数。
// 引入所需的头文件
#include<iostream>
#include <iomanip>
#include <cmath>
using namespace std;
// 主函数
int main(){
// 定义两个整数变量a和b
int a, b;
// 从输入中读取a和b的值
cin >> a >> b;
// 定义一个整数变量x,初始化为1
int x = 1;
// 使用for循环,从1到b,计算a的b次方
for (int i = 1; i <= b; i++) {
// 将x乘以a,并将结果模1000,以获取末三位数字
x *= a, x = x % 1000;
}
// 使用setw和setfill格式化输出,确保输出宽度为3,不足时在前面补零
cout << setw(3) << setfill('0') << x;
// 返回0,表示程序正常结束
return 0;
}
例29.3
解题思路:
1.从输入中读取三个整数a、b和n。
2.初始化一个整数变量temp,用于存储小数点后第n位的数字。
3.使用for循环,从1到n。在每次循环中,将a乘以10,计算a/b的商和余数。将商赋值给temp,将余数赋值给a。
4.输出temp的值,即小数点后第n位的数字。
// 引入所需的头文件
#include <iostream>
using namespace std;
// 主函数
int main() {
// 定义四个整数变量a、b、n和temp
int a, b, n, temp;
// 从输入中读取a、b和n的值
cin >> a >> b >> n;
// 使用for循环,从1到n
for (int i = 1; i <= n; i++) {
// 将a乘以10,计算a/b的商和余数
a *= 10, temp = a / b, a %= b;
}
// 输出temp,即小数点后第n位的数字
cout << temp;
// 返回0,表示程序正常结束
return 0;
}
练29.1
解题思路:
1.从输入中读取两个整数x和n。
2.使用pow函数计算1.001的n次方,然后乘以x,得到n年后的人口数。
3.使用printf函数输出结果,保留到小数点后四位。
// 引入所需的头文件
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
// 主函数
int main(){
// 定义两个整数变量x和n
int x, n;
// 从输入中读取x和n的值
cin >> x >> n;
// 计算n年后的人口数,使用pow函数计算1.001的n次方,然后乘以x
double ans = x * pow(1.001, n);
// 输出结果,保留到小数点后四位
printf("%.4f\n", ans);
// 返回0,表示程序正常结束
return 0;
}
练29.2
解题思路:
1.从输入中读取一个整数n。
2.初始化一个无符号长长整数变量s为1。
3.使用do-while循环,计算1992的n次方的末两位数。在每次循环中,将s乘以1992,取模100,得到末两位数。然后n减1。
4.循环结束后,输出s除以100的余数,即1992的n次方的末两位数。
// 引入所需的头文件
#include<iostream>
using namespace std;
// 主函数
int main() {
// 定义一个整数变量n
int n;
// 定义一个无符号长长整数变量s,初始化为1
unsigned long long s = 1;
// 从输入中读取n的值
cin >> n;
// 使用do-while循环,计算1992的n次方的末两位数
do {
// 将s乘以1992,取模100,得到末两位数
s = (1992 * s) % 100;
// n减1
n--;
} while (n); // 循环条件为n != 0
// 输出s除以100的余数,即末两位数
cout << s % 100;
// 返回0,表示程序正常结束
return 0;
}
练29.3
解题思路:
1.从输入中读取三个整数R、M和Y。
2.使用pow函数计算复合年利率的Y次方。
3.将M乘以复合年利率的Y次方,得到最终的金额。
4.输出结果的整数部分。
// 引入所需的头文件
#include <iostream>
#include <cmath>
using namespace std;
// 主函数
int main()
{
// 定义三个整数变量R、M和Y
int R, M, Y;
// 从输入中读取R、M和Y的值
cin >> R >> M >> Y;
// 计算复合年利率的Y次方,使用pow函数
double rate = pow(1 + (double)R / 100, Y);
// 计算最终的金额,将M乘以复合年利率的Y次方
double result = M * rate;
// 输出结果的整数部分
cout << (int)result;
// 返回0,表示程序正常结束
return 0;
}