例37.1
算法思路
1.输入n
2.初始化结果sum2=1
3.使用数组a记录项数,初始化a[1]=1
4.从2循环到n
5.a[i]依次加1,记录正负号
6.根据a[i]%2判断正负号
7.根据正负号将项加到或减去sum2
8.输出sum2结果,保留4位小数
#include <bits/stdc++.h>
using namespace std;
int main() {
//输入n值
int n;
//初始化结果变量
double sum = 1;
cin >> n;
//从2循环到n
for(int i = 2; i <= n; i++) {
//使用数组记录正负号
int sign = -1;
//根据正负号判断加减
if(sign == 1)
sum += 1.0/i;
else
sum -= 1.0/i;
//翻转正负号
sign *= -1;
}
//输出结果,保留4位小数
cout << fixed << setprecision(4) << sum;
return 0;
}
例37.2
算法思路
1.输入n
2.初始化结果数组a={1,2,3},b={1,1,2}
3.特殊情况输出结果
4.从i=3开始循环计算每个项
5.根据规则计算下一个qi,pi的值
6.累加各项分数和
7.输出结果,保留4位小数
#include<bits/stdc++.h>
double avg;
int main(){
int n;
int a[1001]={1,2,3}, b[1001]={1,1,2};
cin>>n;
//特殊情况
for(int i=3;i<=n;i++){
a[i]=a[i-1]+a[i-2];
b[i]=b[i-1]+b[i-2];
avg+=a[i]/b[i];
}
cout<<fixed<<setprecision(4)<<avg+3.5;
return 0;
}
例37.3
算法思路
1.输入n
2.循环打印菱形的上半部分
3.打印每行的空格数,从n-i开始,逐渐减少
4.打印每行的数字,从1开始,逐渐增加,直到2*i-1
5.换行
6.循环打印菱形的下半部分
7.打印每行的空格数,从1开始,逐渐增加,直到n-i
8.打印每行的数字,从1开始,逐渐增加,直到2*i-1
#include <iostream>
using namespace std;
int main() {
// 输入n
int n;
cin >> n;
// 打印菱形的上半部分
for(int i=1; i<=n; i++) {
// 打印空格
for(int space=1; space<=n-i; space++)
cout << " ";
// 打印数字
for(int num=1; num<=2*i-1; num++)
cout << num;
cout << endl;
}
// 打印菱形的下半部分
for(int i=n-1; i>=1; i--) {
// 打印空格
for(int space=1; space<=n-i; space++)
cout << " ";
// 打印数字
for(int num=1; num<=2*i-1; num++)
cout << num;
cout << endl;
}
return 0;
}
练37.1
复制粘贴…
#include <iostream>
using namespace std;
int main() {
cout << "*****\n*****\n*****";
return 0;
}
练37.2
直接复制粘贴…
#include <iostream>
using namespace std;
int main() {
cout << "*\n**\n***\n****\n*****";
return 0;
}
练37.3
直接复制粘贴…
#include <iostream>
using namespace std;
int main() {
cout << " *\n ***\n *****\n *******\n*********";
return 0;
}