7-19 支票面额 (15 分)
一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?
输入格式:
输入在一行中给出小于100的正整数n。
输出格式:
在一行中按格式y.f
输出该支票的原始面额。如果无解,则输出No Solution
。
输入样例1:
23
结尾无空行
输出样例1:
25.51
结尾无空行
输入样例2:
22
输出样例2:
No Solution
仅供参考(可能存在问题)
题干或检测程序可能存在问题,也可能是我想错了:
#include<stdio.h>
int main()
{
int n,y,f,count=0;
scanf("%d",&n);
//结果出纳员错给了f元y分
//采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分
//100分=1元
//所以:
//f*100+y=n+2*100*y+2*f
//2*f小于100,y小于100
//y为整数,f为整数
//for(y=0;100>y;y++) for(f=0;100>f;f++) if(f*100+y==n+2*100*y+2*f)
for(y=0;100>y;y++) for(f=0;100>f*2;f++) if(f*100+y==n+2*100*y+2*f)
{
count++;//符合条件的次数
printf("%d.%d",y,f);
}
if(0==count) puts("No Solution");
}
题干中的"余额尚有2y元2f分"可能是"余额尚有2y元f分",否则无法通过检测
注意第一个案例给的输出f的值为51,显然这不合理,按照题干中原文的说法"余额尚有2y元2f分",2f就成了102分了,没有进位!!!!
迷惑中.....................................