7-38 支票面额
一个采购员去银行兑换一张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; int f,y,flag=0; scanf("%d",&n); for(f=0;f<100;f++) { for(y=0;y<=49;y++) { if(98*f-199*y==n) { printf("%d.%d",y,f); flag=1; break; } } } if( flag==0 ) { printf("No Solution"); } return 0; }
解析:根据题目可以列出以下式子: 100*f+y-n=200*y+2*f --> 98*f-199*y=n ∵ f<100 && n>0 ∴ f<100 ; y<=49 注意: y、f都必须取到0,因为当n=0时,y、f都为0,此时是满足题目要求的。
第 I 段——变量、表达式、分支、循环 文章被收录于专栏
中国大学MOOC 2021年春季C、Java入门练习第I段——变量、表达式、分支、循环