一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?
输入格式:
输入在一行中给出小于100的正整数n。
输出格式:
在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。
分析:
- 采购员实际得到的金额:
100f + y分。 - 采购员用去了
n分,所以剩下的金额是100f + y - n分。 - 剩下的金额应该等于
200y + 2f分。 - 这个问题的方程表示为:98f−199y=n
代码:
12345678910111213141516171819202122232425262728293031 | int main(){ int y = 0; int f = 0; int n = 0; int found = 0;//找到解标志 scanf("%d",&n); for (f=1; f<100; f++) { for (y=0; y<=99; y++) { if (98*f-199*y==n) { found = 1; break;//找到了解,退出内层循环 } } if (found)//退出外层循环 { break; } } if (found) { printf("%d.%d",y,f);//打印 }else { printf("No Solution");//没有解 }} |