重生之你是C++大佬,当你打开这篇博客,竟然发现这点小题简直易如反掌,于是摩拳擦掌,写他个几千行代码。
1.求前N项之和,直至和超过某一值为止
【问题描述】已知,计算该序列的前N项和SN,直到SN 大于q为止,q由键盘输入。
【输入形式】一个实型数据
【输出形式】一个实型数据
【样例输入】50
【样例输出】50.4167
【样例说明】随着项数的增加,SN的值也在增大,SN超过50后的第一个值是50.4167
【题目解析】直到SN 大于q停止循环,一个条件就选用while语句。
#include<iostream>
using namespace std;
int main()
{
double S=0, q, n=1;
cin >> q;
while (S < q)
{
S += double((n + 1) / n);//以防数据类型改变
n++;
}
cout << S;
return 0;
}
2.求水仙花数
【问题描述】编写一个程序,输入一个正整数N(N大于等于100小于等于999),求出100~N之间的所有水仙花数。所谓的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。
【输入形式】输入一个正整数N。
【输出形式】输出从100到N之间的所有水仙花数,数之前用空格隔开。
【样例输入】400
【样例输出】153 370 371
【样例说明】输入一个的正整数400,输出为100~400之间的水仙花数153、370、371
【题目解析】如何判断水仙花数详见文章C++入门——选择结构1
循环操作如下:
#include<iostream>
using namespace std;
int main()
{
int n,a,b,c;
cin >> n;
for (int i = 100; i <= n; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
if (a * a * a + b * b * b + c * c * c == i)
cout << i<<" ";
}
return 0;
}
3.求阶乘之和
【问题描述】求1~N的阶乘之和,N由键盘输入,注意:。
【输入形式】一个正整数
【输出形式】一个实型数据
【样例输入】10
【样例输出】4.03791e+006
【样例说明】10的阶乘值很大,输出时计算机自动以指数形式输出,4.03791e+006 表示4.03791×106
【题目解析】内循环:求阶乘;外循环:求阶乘和
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
double S=0,m=1;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)//求阶乘
m *= j;
S += m;//阶乘和
m = 1;
}
cout << S;
return 0;
}
4.最大公约数和最小公倍数
【问题描述】输入两个正整数a和b,求出其最大公约数和最小公倍数并输出。
【输入文件】从标准输入读取一行,是两个整数a和b,以空格分隔。
【输出文件】向标准输出打印以空格分隔的两个整数,分别是a、b的最大公约数和最小公倍数
【输入样例】12 18
【输出样例】6 36
【样例说明】12和18的最大公约数是6,最小公倍数是36.
【题目解析】具体见下面代码
#include<iostream>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
//公约数
for (int i = min(m, n); i >= 1; i--)
{
if (m % i == 0 && n % i == 0) {
cout << i<<" ";
break;
}
}
//公倍数
for (int i = max(m, n); i <= m*n; i++)
{
if (i % m == 0 && i % n == 0) {
cout << i << " ";
break;
}
}
return 0;
}
5.求数列前n项和
【问题描述】有一分数序列,计算该序列的前n项和,n由键盘输入。
【样例输入】20
【样例输出】32.6603
【样例说明】该数列前20项之和为32.6603
【题目解析】先找到序列的规律:前一项的分子=后一项的分母;前一项的分子+分母=后一项的分子,具体如下:
#include<iostream>
using namespace std;
int main()
{
int N;
cin >> N;
double S=0,m=2.0,n=1.0;//m:分子,n:分母
for (int i = 1; i <= N; i++)
{
S += m / n;
int t = m;
m = m + n;
n = t;
}
cout << S;
return 0;
}
循环结构第一部分就到这里,代码无情,人间有情,欢迎大家点赞评论加收藏。内容如有问题还请大家在评论区指点一二。
标签:输出,入门,int,样例,C++,循环,阶乘,水仙花,输入 From: https://blog.csdn.net/2401_86644481/article/details/141031743