0%

C语言解决支票金额问题

文章时效性提示

本文发布于 402 天前,部分信息可能已经改变,请注意甄别。

一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?

输入格式:

输入在一行中给出小于100的正整数n。

输出格式:

在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution

分析:

  • 采购员实际得到的金额:100f + y 分。
  • 采购员用去了 n 分,所以剩下的金额是 100f + y - n 分。
  • 剩下的金额应该等于 200y + 2f 分。
  • 这个问题的方程表示为:98f−199y=n

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
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");//没有解
    }
}