一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?
输入格式:输入在一行中给出小于100的正整数n。
输出格式:在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。
输入样例1:23输出样例1:
25.51输入样例2:
22输出样例2:
No Solution
在最开始的思路中,我把2y2f与n和之前的钱数列了方程解出两个等式,但是尝试了一下发现这样不对,测试点0无法通过,搜了下大家的代码发现有2f>100的情况存在,这时有可能不是no solution,但是这样程序却会这样判断。
之后换了个思路,不考虑换算,单纯从数字关系来解方程。
因为f和y前后是相同的,所以只有一个未知数n,列出方程用循环来试就行。
代码如下:#includeint main() { int n; int y,f; int flag; flag=1; scanf("%d",&n); for(y=0;y<100;y++) { for(f=0;f<100;f++) { if(100*f+y-n==2*y*100+2*f) { printf("%d.%d",y,f); flag=0; } } } if(flag==1) { printf("No Solution"); } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)