解题思路:
注意事项:
若想让笔的数量最大,应优先购买4元的。
以4为基准求余:
剩1元,则4元钱的笔少买1支,换成1支5元笔;
剩2元,则4元钱的笔少买1支,换成1支6元笔;
剩3元,则4元钱的笔少买2支,换成1支5元笔和1支6元笔;
本题的主要思想是 贪心算法 (循环中的三块代码操作类似,可以通过函数来处理)
参考代码:
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int x,y,a,b,c;
cin>>x;
c=x/4;
y=x%4;
switch(y){
case 0:cout<<0<<" "<<0<<" "<<c<<endl;break;
case 1:cout<<0<<" "<<1<<" "<<c-1<<endl;break;
case 2:cout<<1<<" "<<0<<" "<<c-1<<endl;break;
case 3:cout<<1<<" "<<1<<" "<<c-2<<endl;break;
}
return 0;
}
0.0分
1 人评分
大神老白 (C语言代码)浏览:715 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:600 |
C语言考试练习题_排列 (C语言代码)浏览:1326 |
【绝对值排序】 (C语言代码)浏览:717 |
【亲和数】 (C语言代码)浏览:503 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:609 |
1126题解浏览:595 |
1128题解(返回值为数组的情况)浏览:473 |
C二级辅导-阶乘数列 (C语言代码)浏览:521 |
DNA (C语言代码)浏览:741 |