计算导论与C语言基础week8
来源:互联网 发布:java 微信支付api 编辑:程序博客网 时间:2024/05/16 07:24
抄写题.枚举法
4名专家对4款赛车进行评论
1)A说:2号赛车是最好的;
2)B说:4号赛车是最好的;
3)C说:3号赛车不是最好的;
4)D说: B说错了。
事实上只有1款赛车最佳,且只有1名专家说对了,其他3人都说错了。
请编程输出最佳车的车号,以及说对的专家。
#include <iostream>using namespace std;int main() { int a, b, c, d,car; for (car = 1; car <= 5; car++) { //枚举就在这个for循环体现的,car从1到5看哪个满足条件 a = (car == 2); b = (car == 4); c = (car != 3); d = (car != 4); if (a + b + c + d == 1)//这个是只有1个说的正确 break; } cout << car << endl; if (a == 1)cout << 'A' << endl; else if (b == 1)cout << 'B' << endl; else if (c == 1)cout << 'C' << endl; else cout << 'D' << endl; return 0;}
2.骑车与走路
描述
在北大校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间.假设找到自行车,开锁并车上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米.请判断走不同的距离去办事,是骑车快还是走路快.
输入
第一行为待处理的数据的数量n
其后每一行整数为一次办事要行走的距离,单位为米.
输出
对应每个整数,如果骑车快,输出一行”Bike”;如果走路快,输出一行”Walk”;如果一样快,输出一行”All”.
#include <iostream>using namespace std;int main() { int n,i,s; int b = 27 + 23;//骑车的固定消耗时间 double v_w = 1.2, v_b = 3.0;//走路,骑车速度 cin >> n; for (i = 0; i < n; i++) { cin >> s; double t1, t2; t1 = b + s / v_b; t2 = s / v_w; if (t1 > t2)cout << "Walk" << endl; else if (t1 < t2)cout << "Bike" << endl; else cout << "All" << endl; } return 0;}
3.买房子
描述
某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子(第一年房价200万,收入N万)。程序员每年先拿工资,再尝试买房,然后房子才涨价。
输入
有多行,每行两个整数N(10 <= N <= 50), K(1 <= K <= 20)
输出
针对每组数据,如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible,输出需要换行
#include <iostream>using namespace std;int main() { int N, K; while (cin >> N >> K) {//这段是C++里多行输入(在不知道一共有多少行的情况下),每输入一组数据就可以输出其结果,不用等待所有数据都输入完毕。 double price = 200;//price存房价 int year = 1; int store = N;//年薪 while (store < price && year <= 20){ store += N; price += price*K / 100.0; year++; } if (store < price)cout << "Impossible" << endl; else cout << year << endl; } return 0;}
4.找和为k的两个元素
描述
在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k。
输入
第一行输入序列的长度n和k,用空格分开。
第二行输入序列中的n个整数,用空格分开。
输出
如果存在某两个元素的和为k,则输出yes,否则输出no。
#include <iostream>using namespace std;int main() { int n, k,i,j; int flag = 0; cin >> n >> k; int a[1000] = { 0 }; for (i = 0; i < n; i++) { cin >> a[i]; } for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) { if (a[i] + a[j] == k) { flag = 1;//找到的话标志置1 break; } } } if (flag == 1)cout << "yes" << endl; else cout << "no" << endl; return 0;}
5.自除整数
描述
对一个整数n,如果其各个位数的数字相加得到的数m能整除n,则称n为自整除数.例如21,21%(2+1)==0,所以21是自整除数.现求出从10到n(n < 100)之间的所有自整除数.
输入
有一行,整数n,(10 <= n < 100)
输出
有多行.按从小到大的顺序输出所有大于等于10,小于等于n的自整除数,每行一个自整除数.
#include <iostream>using namespace std;int main() { int n, i; cin >> n; for (i = 10; i <= n; i++) { int a1 = i / 10;//十位 int a2 = i % 10;//个位 if (i % (a1 + a2) == 0)cout << i << endl; } return 0;}
这个week8看视频课程和作业题用了4个小时,久了点》。
- 计算导论与C语言基础week8
- 计算导论与C语言基础week6
- 计算导论与C语言基础week7
- 计算导论与C语言基础week10_1
- 计算导论与C语言基础week10_2
- 计算导论与C语言基础(专项课程之一)
- [Coursera 计算导论与C语言基础] 第六周作业
- [Coursera 计算导论与C语言基础] 第七周作业
- [Coursera 计算导论与C语言基础] 第八周作业
- [Coursera 计算导论与C语言基础] 期末编程测试
- 计算导论与C语言基础week12期末题
- coursera《计算导论与C语言基础》第七周
- coursera《计算导论与C语言基础》第八周
- coursera《计算导论与C语言基础》第十周
- [Coursera 计算导论与C语言基础] 第十周作业(上)
- [Coursera 计算导论与C语言基础] 第十周作业(下)
- 《计算导论与C语言基础》第4周编程作业: 感性接触计算机程序
- 单词长度-week8-C语言习题集
- Kubernetes Scheduler源码分析--启动过程与多队列缓存
- 启动虚拟机错误 Transport(VMDB) error -44:Message
- Mayor's posters
- L1-005. 考试座位号
- idea创建项目报错 -Dmaven.multiModuleProjectDirectory system property is not
- 计算导论与C语言基础week8
- ubuntu 16.04 常用命令
- Android知识点小结
- matlab笔记(1)----基础
- Static allocator 3
- git rebase
- 智慧楼宇篇 1 —— 室内定位技术(一)
- 文件数据提取
- 关于char *和char [] 的不同