n钱买n鸡
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n 只鸡,问公鸡、母鸡、小鸡各买多少只?
输入格式:
输入一个正整数 n。
输出格式:
如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。
如果无解,输出"No Answer."
。
数据范围:
1≤n≤200。
#include<stdio.h>
int main()
{
int n,i,j,flag=0;
scanf("%d",&n);
if(n>=1&&n<=200)//定义n的范围
{ for(i=0;i*5<=n;i++)//确定公鸡的最大只数
{
for(j=0;j*3<=n;j++)//确定母鸡的最大只数
{
if((n-5*i-3*j)*3==(n-i-j))//剩余的钱*3等于小鸡的数量
{printf("%d %d %d\n",i,j,n-i-j);
flag++;}
}
}
}if(flag==0) printf("No Answer.");//无解输出
return 0;
}
解题思路:首先输入n,定义flag=0,其次,确定n的范围、公鸡、母鸡的最大只数,再利用剩余量构造一个等式,如果有解则输出,如果无解则flag=0不变,输出No Answer.
n钱买n鸡
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n 只鸡,问公鸡、母鸡、小鸡各买多少只?
输入格式:
输入一个正整数 n。
输出格式:
如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。
如果无解,输出"No Answer."
。
数据范围:
1≤n≤200。
#include<stdio.h>
int main()
{
int n,i,j,flag=0;
scanf("%d",&n);
if(n>=1&&n<=200)//定义n的范围
{ for(i=0;i*5<=n;i++)//确定公鸡的最大只数
{
for(j=0;j*3<=n;j++)//确定母鸡的最大只数
{
if((n-5*i-3*j)*3==(n-i-j))//剩余的钱*3等于小鸡的数量
{printf("%d %d %d\n",i,j,n-i-j);
flag++;}
}
}
}if(flag==0) printf("No Answer.");//无解输出
return 0;
}