1 .求阶乘的和
给定正整数n,求不大于n的正整数的阶乘和,输出阶乘的和
输入:
一行 ,包含一个正整数
输出:
一行,阶乘的和
样例输入:
5
样例输入:
153
代码实现:
#include <iostream>
using namespace std;
int main(){
int n,i;
long long int d = 1,s = 0;
cin >> n;
for(i = 1;i <= n;i++){
d *= i;
s += d;
}
cout << s << endl;
}
2 计算多项式的值
假定多项式的形式为xn+xn-1+ … + x2+ x + 1,请计算给定单精度浮点数x和正整数在这个多项式下的值,x在float范围内,n <= 1,000,000. 多项式的值精确到小数点后两位,保证最终结果在float范围内.
输入:
一行,包括x和n的值,用单个空格隔开
输出:
一个实数,即多项式的值,精确到小数点后两位
样例输入:
2.0 4
样例输出:
31.00
代码实现:
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
float x,s = 1,r = 1;
int n,i;
cin >> x >> n;
for(i = 1;i <= n;i++){
s *= x;
r += s;
}
cout << fixed << setprecision(2) << r << endl;
return 0;
}
注意c++设置精度的方法
3 不定方程求解
给定正整数 a,b,c 求不定方程 ax + by = c 关于未知数x,y的所有非负整数解的组数
输入:
一行,包含三个正整数 a,b,c,整数之间用单个空格隔开
输出:
一个整数,既不定方程的非负整数解的组数
样例输入
2 3 18
样例输出
4
代码实现:
#include <iostream>
using namespace std;
int main(){
int a,b,c,x,count = 0;
cin >> a >> b >> c;
//ax + by = c
for(x = 0;x <= c * 1.0 / a;x++){
int y = (c - a * 1.0 * x) / b;
if(a * x + b * y == c)
count ++;
}
cout << count << endl;
}
一段很漂亮的代码 只用了一层循环
具体思想 根据x把y算出来 然后查看匹不匹配