找钱编程
‘壹’ 做软件开发、编程之类的好赚钱吗
没听过365行,行行出状元吗?但首先你得知道,钱不是那么好赚的,不管是哪一行,都要吃得苦,当然,任何一门技术学精了都好找钱,学得个高不成低不就,就不好找钱。下面给你介绍下学软件的好与坏吧。
软件这个行业更新得很快,正如你所看到的,计算机的发展是一天不同一天,特别是计算机网络还有通信发展更快,因此你学软件就要天天学习,而且学的东西很多,基本上是与计算机有关的都要学,那样你才能成为精英,因此难度系数大,容易学成高不成低不就。学计算机不比学机械,机械基本上一成不变。
‘贰’ 硬币找零(用C语言或C++)
和下面这道题目基本一样,改动一点数字以及输出语句就好了。
http://..com/question/418040990.html?oldq=1
‘叁’ 找零钱问题的贪心算法
问题描述:
当前有面值分别为2角5分,1角,5分,1分的硬币,请给出找n分钱的最佳方案(要求找出的硬币数目最少)
问题分析:
根据常识,我们到店里买东西找钱时,老板总是先给我们最大面值的,要是不够再找面值小一点的,直到找满为止。如果老板都给你找分数的或者几角的,那你肯定不干,另外,他也可能没有那么多零碎的钱给你找。其实这就是一个典型的贪心选择问题。
问题的算法设计与实现:
先举个例子,假如老板要找给我99分钱,他有上面的面值分别为25,10,5,1的硬币数,为了找给我最少的硬币数,那么他是不是该这样找呢,先看看该找多少个25分的, 99/25=3,好像是3个,要是4个的话,我们还得再给老板一个1分的,我不干,那么老板只能给我3个25分,由于还少给我24,所以还得给我2个10分的和4个1分。
具体实现
//找零钱算法
//By falcon
//输入:数组m,依次存放从大到小排列的面值数,n为需要找的钱数,单位全部为分
//输出:数组num,对照数组m中的面值存放不同面值的硬币的个数,即找钱方案
‘肆’ vb编程硬币找钱问题
'窗体上一个文本框text1控件,用于输入找补的金额
'一个按钮command1
Private Sub Command1_Click()
Dim a(1 To 3) '把<a href="https://www..com/s?wd=%E7%A1%AC%E5%B8%81&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">硬币</a>的币值存入数组中以分为单位,100,50,10
Dim b(1 To 3) '用于记录<a href="https://www..com/s?wd=%E7%A1%AC%E5%B8%81&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">硬币</a>的个数
Dim c(1 To 3) '用于记录<a href="https://www..com/s?wd=%E7%A1%AC%E5%B8%81&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">硬币</a>的名称
a(1) = 100: a(2) = 50: a(3) = 10
c(1) = "一元的硬币": c(2) = "五角的硬币": c(3) = "一角的硬币"
x = Val(Text1.Text) '需要找补的金额在text1,初值是2.7
x = x * 100 '扩大为分的单位
For i = 1 To 3
b(i) = Int(x / a(i))
x = x - b(i) * a(i)
Next i
Print "找" & Text1.Text & "元的补零,使用最少硬币组合是"
For i = 1 To 3
Print c(i) & "=" & b(i)
Next i
End Sub
‘伍’ C语言用下面贪婪算法如何编程实现
#include <stdio.h>
#include <stdlib.h>
int little(double n){
static int i=0;
if(n==0.0){
return;
}else{
if(n>=1.0){
++i;
printf("n=%f\n",(n-1));
little(n-1.0);
}else if(n>=0.5){
++i;
printf("n=%f\n",(n-0.5));
little(n-0.5);
}else if(n>=0.1){
++i;
printf("n=%f\n",(n-0.1));
little(n-0.1);
}
}
return i;
}
int main()
{
printf("Hello world=%d!\n",little(2.7));
return 0;
}
‘陆’ 怎么进行C语言编程,要全代码
#include<stdio.h>
main()
{
char goods[4][20] = {"","T 恤","网球鞋","网球拍"};
float cost[4] = {0,245.0,570.0,600.0};
char c;
int num;
int n;
float total;
float pay;
float dis;
printf("****************************** ");
printf("请选择购买的商品编号: ");
printf("1.T 恤 2.网球鞋 3.网球拍 ");
printf("****************************** ");
total = 0;
dis = 0.8;
do{
printf(" ");
printf("请输入商品编号:");
scanf("%d",&num);
printf("请输入购买数量:");
scanf("%d",&n);
printf("%s¥%0.1f 数量 %d 合计 ¥%0.1f ",goods[num],cost[num],n,n * cost[num]);
total += n * cost[num];
printf("是否继续(y/n)");
c = getchar();
scanf("%c",&c);
}while(c == 'y');
printf(" 折扣:%0.1f ",dis);
printf("应付金额:%0.1f ",total * dis);
printf("实付金额:");
scanf("%f",&pay);
printf("找现:%0.1f ",pay - total * dis);
}
‘柒’ 算法 最少硬币问题
设 dp[k] 表示找钱数 k 需要的最少硬币数。对每一个dp[i]需要存储这个状态下需要的各硬币数量。
对T[1..n]中的每一个T[i],如果 dp[k-T[i]] 中需要硬币 T[i] 的数量小于Coins[i]-1,则把 dp[k-T[i]]+1 加入待比较的数组中。
dp[k]= min{ dp[k-T[i]]+1 },同时要更新 dp[k] 需要的各硬币的数量。
‘捌’ python找钱
由程序的要求我们可以得到,找50元的5张,找5元的6张,找1元的3张。可以直接用取余等操作算出来,或者用贪心思想解决问题,但是用取余简单。
正确代码:
count=283
x = int(count/50)
y = int((count-x*50)/5)
z=count-(x*50)-(y*5)
print('找零{}元其中 50元:{}张 5元: {}张 1元: {}张 '.format(count,x,y,z))
(8)找钱编程扩展阅读:
Python的优缺点:
优点:
1、简单,Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
2、易学,Python极其容易上手,因为Python有极其简单的说明文档。
3、速度快,Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。
4、免费、开源,Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
5、高层语言,用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
6、可移植性,由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
7、解释性,一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
8、规范的代码,Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
缺点:
运行速度慢:这里是指与C和C++相比。
参考资料来源:网络-Python
‘玖’ c++编程Coin Changing
For your reference.
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
int needCoins(vector<int>& T, vector<int>& Coins, int m)
{
if(m==0) return 0;
int k = 200000; //maximum
for(int i=0; i<Coins.size(); i++) {
if(Coins[i]>0 && m-T[i]>=0) {
vector<int> newCoins(Coins.begin(), Coins.end()); //a
newCoins[i]--;
int t = needCoins(T, newCoins, m-T[i]);
if(t!= -1 && k > t+1) k = t+1;
}
}
if(k==200000) return -1;
else return k;
}
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> T;
T.push_back(1);
T.push_back(2);
T.push_back(5);
vector<int> Coins;
Coins.push_back(3);
Coins.push_back(2);
Coins.push_back(2);
int ret = needCoins(T, Coins, 8);
cout << ret << endl;
return 0;
}