1. 数据统计
【问题描述】
输入N个整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。(1<=N<=1000)
【样例输入】
8
2 8 3 5 1 7 3 6
【样例输出】
1 8 4.375
#include <iostream> #include <iomanip> using namespace std; int main(){ int n, m, sum = 0, min, max, k; cin >> n; k=n; cin >> m; min = max = sum = m; while(n-1>0){ cin >> m; sum += m; if(min>m){ min=m; } if(max<m){ max=m; } n--; } cout << min << " " << max << " "; cout << fixed << setprecision(3) << (double)sum/k << endl; return 0; }
2. 角谷猜想
【问题描述】
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。
输入:一个正整数N(N <= 2,000,000)
输出:从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。
【样例输入】
5
【样例输出】
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End
#include<iostream> using namespace std; int main(){ long long int n; cin>>n; while(n>1){ if(n%2){ n=3*n+1; cout<<(n-1)/3<<"*3+1="<<n<<endl; }else{ n=n/2; cout<<2*n<<"/2="<<n<<endl; } } cout<<"End"<<endl; return 0; }
1. 小玉游泳
【问题描述】
小玉开心地在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。
输入格式:输入一个数字(不一定是整数,小于100m),表示要游的目标距离。
输出格式:输出一个整数,表示小玉一共需要游多少步。
【样例输入】
4.3
【样例输出】
3
#include <iostream> using namespace std; int main(){ double m, n, l=2, step=0; cin >> m; while(n<m){ step++; n+=l; l*=0.98; } cout << step << endl; return 0; }
2. 球弹跳高度的计算
【问题描述】
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?
输入:输入一个整数h,表示球的初始高度。
输出:输出包含两行:
第1行:到球第10次落地时,一共经过的米数。
第2行:第10次弹跳的高度。
注意:结果可能是实数,结果用double类型保存。
【样例输入】
20
【样例输出】
59.9219
0.0195312
#include <iostream> #include <iomanip> using namespace std; int main(){ double h, sum, n=10; cin >> h; sum=h; while(n-1>0){ sum+=h; h/=2; n--; } cout << fixed << setprecision(4) << sum << endl; cout << fixed << setprecision(4) << h/2 << endl; return 0; } //思路:球第一次落地经过h,然后弹起高度为二分之一h, //弹起再落地所经过的路径还是h
3. 金币
【问题描述】
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。
你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。
输入:一个整数(范围1到10000),表示天数。
输出:骑士获得的金币数。
【样例输入】
6
【样例输出】
14
#include <iostream> using namespace std; int main(){ int n, sum=0; int i=0; cin >> n; while(n>0){ i++; sum+=i*i; n-=i; } sum += n*i; cout << sum << endl; return 0; }