兑换硬币
用一张一元票换1分、2分和5分的硬币,每种至少一枚, 问有几种换法?
输入
无
输出
输出只有一行(这意味着末尾有一个回车符号),包括
1
个整数。
#include<iostream>
using namespace std;
int main()
{
int cnt = 0;
for(int i = 1;i<=(100-1-5)/1;i++)
{
int s =100-i*1;
for(int j = 1;j<=(s-5)/2;j++)
{
int k=s-j*2;
if(i*1+j*2+k*5==100)
{
cnt++;
cout<<cnt;
}
}
}
return 0;
}
购买文具
题目描述
新学年就要开始了,爸爸把N元钱给了小青,让他购买一批文具,并作了以下要求:只能买圆珠笔、铅
笔和铅笔芯,并且每样至少买一支,总数要超过30支,而且钱要全部花完。
当小青去到文具店时,发现圆珠笔8角钱一支、铅笔2角钱一支、铅笔芯1角钱一支。小青怎么买才能符
合爸爸的要求呢?请你编个程序帮他算出符合购买要求的所有方案总数。
输入
一个整数N,表示购买文具一共的元数。(1 <= N <= 50)
输出
一个整数,即符合购买要求的所有方案总数。
输入复制
8
输出复制
135
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
n = n*10;
int cnt = 0;
for(int i = 1;i<=(n-2-1)/8;i++)//圆珠笔
{
int s = n-i*8;
for(int j = 1;j<=(s-1)/2;j++)//铅笔
{
int k = (s-j*2)/1;
if(i*8+j*2+k*1==n&&i+j+k>30)
{
cnt++;
}
}
}
cout<<cnt;
return 0;
}
搬砖问题
36 块砖, 36 人搬。男搬 4 ,女搬 3 ,两个小儿抬一砖。要求一次全搬完。问需男、女、
小儿各若干?
注意:假设男、女、小孩都有,请按照男、女、小孩的顺序输出所有可能的人数分配,每
种人数分配方案占1行,每个数字空格隔开。
输入
无
输出
所有可能的人数分配方案,按照由小到大输出
#include<iostream>
using namespace std;
int main()
{
for(int i =1;i<=36-3-2;i++)
{
int s = i-4;
for(int j = 1;j<=36-i;j++)
{
int k =36-i-j;
if(i+j+k==36&&i*4+j*3+k/2==36)
{
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
}
return 0;
}
桐桐的计算
这个周末数学老师布置了一道有趣的题目,意思是:九头鸟(传说中的一种怪鸟,它有九个
头,两只脚)、鸡和兔子关在一个笼子里。数数它们的头正好是100个,数数它们的脚也正
好是100只。老师让桐桐编程计算其中九头鸟、鸡和兔子各有多少只,你能帮助桐桐吗?
输入
无
输出
前面若干行,每行输出满足题目条件的一个解,共三个数,分别
表示九头鸟、鸡和兔子的只数,最后一行输出题目解的总数。
#include<iostream>
using namespace std;
int main()
{
for(int i = 1;i<=(100-3-1)/5;i++)
{
int s =100-i*5;
for(int j = 1;j<=(s-1)/3;j++)
{
int k =(s-j*3)*3;
if(i+j+k==100&&i*5+j*3+k/3==100)
{
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
}
return 0;
}
青少年编程