文章最后更新时间:2023年05月15日已超过558天没有更新。
第6次作业(5月4日)
1. 津津的储蓄计划
1.津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。
为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。
例如11月初津津手中还有83元,妈妈给了津津300元。津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。到了11月月末,津津手中会剩下3元钱。
津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。
现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。
输入包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。
输出包括一行,这一行只包含一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。
(说明:此题程序由纳雍县的王老师提供 )
#include<bits/stdc++.h> int main() { int me = 0, mom = 0, spend, i; for (i = 1; i <= 12; i++) { me = me+300; scanf("%d", &spend); me = me-spend; if (me < 0)//出现钱不够用的 { me = -i; //出现钱不够用的月数 break;//结束 } mom = mom + me / 100 * 100; //几个整百数 me = me % 100; //存整百后的剩余钱 } if (me < 0) printf("%d", me);//输出不够用的月数 else printf("%g", me + mom * 1.2);//输出增加的20%还要加上剩余钱 return 0; }
2. 求平均年龄
2.班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
输入第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。
输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
#include <iostream> #include <iomanip> using namespace std; int main() { int n, suishu, zonghe = 0; cin >> n; for (int i = 0; i < n; i++) { cin >> suishu; zonghe += suishu; } double pingjun = (double) zonghe / n; cout << fixed << setprecision(2) << pingjun << endl; return 0; }
3. 最高的分数
3.孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
输出一个整数,即最高的成绩。
#include <iostream> using namespace std; int main() { int n, zuida = 0; cin >> n; for (int i = 0; i < n; i++) { int chengji; cin >> chengji; if (chengji > zuida) { zuida = chengji; } } cout << zuida << endl; return 0; }
4. 奇数求和
4.计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35。
输入两个数 m 和 n,两个数以一个空格分开,其中 0 <= m <= n <= 300 。
输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和。
#include <iostream> using namespace std; int main() { int m, n; cin >> m >> n; int zonghe = 0; for (int i = m; i <= n; i++) { if (i % 2 == 1) { zonghe += i; } } cout << zonghe << endl; return 0; }
5. 整数的个数
5.给定k(1 < k < 100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。
输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。
#include <iostream> using namespace std; int main() { int k; cin >> k; int shu1 = 0, shu5 = 0, shu10 = 0; for (int i = 0; i < k; i++) { int geshu; cin >> geshu; if (geshu == 1) { shu1++; } else if (geshu == 5) { shu5++; } else if (geshu == 10) { shu10++; } } cout << shu1 << endl; cout << shu5 << endl; cout << shu10 << endl; return 0; }
第6次作业(5月5日)
1. 角谷猜想
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。
输入一个正整数N(N <= 2,000,000)
从输入整数到1的步骤,每一步为一行,每一步中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。
#include <iostream> using namespace std; int main() { int n; cin >> n; while (n != 1) { cout << n; if (n % 2 == 1) { // 奇数情况 cout << "*3+1="; n = n * 3 + 1; } else { // 偶数情况 cout << "/2="; n = n / 2; } cout << n << endl; } cout << "End" << endl; return 0; }
2. 分离整数的各个数位
给定一个整数,要求从个位开始分离出它的每一位数字。输入一个整数,整数在1到100000000之间。输出从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个空格分开。
#include <iostream> using namespace std; int main() { int n; cin >> n; while (n > 0) { cout << n % 10 << " "; n /= 10; } return 0; }
3.求两个数的最大公约数
对于求两个正整数m,n的最大公约数可以用do-while实现。
输入两个整数,输出最大公约数
#include <iostream> using namespace std; int main() { int m, n; cin >> m >> n; int remainder; // 存储余数 do { remainder = m % n; m = n; n = remainder; } while (remainder != 0); cout << m << endl; return 0; }
第8次作业(5月8日)
1. 字符图形2-星号倒直角
请打印n行的星号倒直角三角形。
输入一个整数n(n<10)。
输出输出如下方图所示n行的星号倒直角三角形。
#include <iostream> using namespace std; int main() { int n; cin >> n; for (int i = n; i > 0; i--) { for (int j = 1; j <= i; j++) { cout << "*"; } cout << endl; } return 0; }
2. 求1!+2!+...+N!
N!=1∗2∗...∗N。例5!=1∗2∗3∗4∗5=120。
编程求1!+2!+3!+...+N!。
输入一行,只有一个整数n(1≤n≤10)
输出一行,1个整数
#include <iostream> using namespace std; int main() { int n; cin >> n; int sum = 0; int jiecheng = 1; for (int i = 1; i <= n; i++) { jiecheng *= i; sum += jiecheng; } cout << sum << endl; return 0; }
3. 求100~999中的水仙花数
若三位数ABC=ABC=A³+B³+C³,则称ABC为水仙花数。例如153,1³+5³+3³ =1+125+27=153,则153是水仙花数。
输出按从小到大输出所有水仙花数,每个数占6个字符宽度。
#include <bits/stdc++.h> using namespace std; int main(){ for (int i = 100; i <= 999; i++){ int a = i / 100; // 获取百位数 int b = (i / 10) % 10; // 获取十位数 int c = i %10; // 获取个位数 if (i == a*a*a + b*b*b + c*c*c){ cout << setw(6) << i; } } return 0; }
还没有评论,来说两句吧...