菜鸟之路【计算导论与C基础】练习1 计算概论第五周 B-04作业
来源:互联网 发布:淘宝钻石展位收费标准 编辑:程序博客网 时间:2024/05/17 01:05
这是修改稿~记录一下在学习当中遇见的一些解法以及思路,本篇均在VS2013编译条件下进行了测试;单未进行黑盒测试,可能在一些解法上存在问题,在刷完题后会对本篇进行校正~前述未完成作业也将会补上^_^
在此也感谢一下那些提供思路的程序员及方法~
编程题#3:描述
用户输入N和K,然后接着输入N个正整数(无序的),程序在不对N个整数排序的情况下,找出第K大的数。
注意,第K大的数意味着从大到小排在第K位的数。
输入
N
K
a1 a2 a3 a4 ..... aN
输出
b
样例输入
5
2
32 3 12 5 89
样例输出
32
提示这是一道很经典的算法问题,是公司面试的常见考题。
以后学习递归之后再回头看看这道题,或许有新解法。
参考解法贴上
#include<iostream>using namespace std;int main(){int a[100];int N, K;cin >> N >> K;for (int i = 0; i < N; i++){cin >> a[i];//初始化数组}for (int i = 0; i < N; i++){int num = 0;for (int j = 0; j < N; j++){if (a[i] < a[j])num++;}if (K - 1 == num)cout << a[i] << endl;}return 0;}递归方法
#include<iostream>using namespace std;int num[100] = { 0 };//定义100个元素的数组,输入N个正整数,找出第K大的数int Big(int K, int N){int tmp = 0;if (K == 1){for (int i = 0; i < N; i++){if (num[i] > tmp)tmp = num[i];}}else{for (int i = 0; i < N; i++)if ((num[i]>tmp) && (Big(K - 1, N)>num[i])){tmp = num[i];}}return tmp;}int main(){int N, K;cin >> N >> K;//输入N个正整数,找出第K大的数for (int i = 0; i < N; i++){cin >> num[i];}cout << Big(K, N) << endl;return 0;}
编程题#4:人民币支付描述从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。输入一个小于1000的正整数。输出输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数样例输入735样例输出701110
解法1,太笨了这方法
#include<iostream>using namespace std;int main(){int sum;int a[6] = {0};//a[0]:100,a[1]:50,a[2]:20,a[3]:10,a[4]:5,a[5]:1;cin >> sum;a[0] = sum / 100;a[1] = (sum - a[0] * 100) / 50;a[2] = (sum - a[0] * 100 - a[1] * 50) / 20;a[3] = (sum - a[0] * 100 - a[1] * 50 - a[2] * 20) / 10;a[4] = (sum - a[0] * 100 - a[1] * 50 - a[2] * 20 - a[3] * 10) / 5;a[5] = (sum - a[0] * 100 - a[1] * 50 - a[2] * 20 - a[3] * 10 - a[4] * 5);for (int i = 0; i < 6; i++){cout << a[i] << endl;}return 0;}解法二,本来是用取余,结果发现可以用循环来做
#include<iostream>using namespace std;int main(){int sum;int a[6] = { 0 };//a[0]:100,a[1]:50,a[2]:20,a[3]:10,a[4]:5,a[5]:1;cin >> sum;int piao[6] = {100,50,20,10,5,1};for (int i = 0; i < 6; i++){a[i] = sum / piao[i];sum = sum % piao[i];cout << a[i] << endl;}return 0;}
0 0
- 菜鸟之路【计算导论与C基础】练习1 计算概论第五周 B-04作业
- 菜鸟之路【计算导论与C基础】练习2:计算概论第六周 B-05作业
- coursera 中计算概论的第五周 B-04作业
- [Coursera 计算导论与C语言基础] 第六周作业
- [Coursera 计算导论与C语言基础] 第七周作业
- [Coursera 计算导论与C语言基础] 第八周作业
- [Coursera 计算导论与C语言基础] 第十周作业(上)
- [Coursera 计算导论与C语言基础] 第十周作业(下)
- 《计算导论与C语言基础》第4周编程作业: 感性接触计算机程序
- coursera 中计算概论的第三周 B-01作业
- coursera 中计算概论的第六周 B-05作业
- coursera 中计算概论的第七周 B-06作业
- 计算导论与C语言基础week6
- 计算导论与C语言基础week7
- 计算导论与C语言基础week8
- 计算导论与C语言基础week10_1
- 计算导论与C语言基础week10_2
- coursera《计算导论与C语言基础》第七周
- Ionic 自动生成icon和splash图片
- 深度学习与计算机视觉系列(2)_图像分类与KNN
- iOS中下载的demo出现上下部分为黑色解决办法
- maven项目的几个问题
- 景子渊:原油沥青白银暴涨暴跌,空单被套之后多单又被套,频频套单怎么办?
- 菜鸟之路【计算导论与C基础】练习1 计算概论第五周 B-04作业
- 【Android基础学习】带进度条的WebView 2
- 标准C++中string类的用法
- 围棋攻杀要诀
- 如何科学获取Android开发资源,更新SDK/IDE
- cocos2dx-网络连接客户端部分学习
- Jmeter之使用CSV Data Set Config实现参数化登录
- 过滤器Filter学习
- 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器