解题思路:
1.根据百钱百鸡问题,百钱买到一百只鸡,输出方法;
2.这里变为任意钱买钱,只要三种面值的钱都买到,就是成立的买法;
3.每种钱都要买到,故每种钱的初始张数都为1;
4.把有的钱money,先买面值为5的钱,所剩余的钱为:moneyleft_forliangyuan=money-wuyuan*5;
(wuyuan:面值为5的钱的张数)
5.把剩余的钱买面值为2的钱,所剩余的钱为:moneyleft_foryiyuan=moneyleft_forliangyuan-liangyuan*2;
(liangyuan:面值为2的钱的张数)
6.最后把剩下的钱买面值为1的钱,(注意:至少有一张1元),故当moneyleft_foryiyuan>=1时,整个买法成立;
参考代码:
#include<stdio.h> int main() { int money,approach=0; while(scanf("%d",&money)!=EOF) { approach=0; for(int wuyuan=1;wuyuan<=money/5;wuyuan++) { int moneyleft_forliangyuan=money-wuyuan*5; for(int liangyuan=1;liangyuan<=moneyleft_forliangyuan/2;liangyuan++) { int moneyleft_foryiyuan=moneyleft_forliangyuan-liangyuan*2; if(moneyleft_foryiyuan>=1) approach++; } } printf("%d\n",approach); } return 0; }
别忘点赞哦-.-
0.0分
12 人评分
#include<iostream> using namespace std; int main() { int a,i,j,k,s=0; cin>>a; for(i=1;i<=a/5;i++) for(j=1;j<=a/2;j++) { if(a-i*5-j*2>0) s++; } cout<<s; }也可以直接后面用所有的钱减五块的和两块的还大于1的
汽水瓶 (C++代码)浏览:781 |
A+B for Input-Output Practice (III) (C语言代码)浏览:637 |
众数问题 (C语言代码)浏览:3433 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:911 |
妹子杀手的故事 (C语言代码)浏览:642 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:509 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:438 |
简单的a+b (C++语言代码)浏览:837 |
【计算直线的交点数】 (C语言代码)浏览:1394 |
演讲大赛评分 (C语言代码)浏览:1574 |