独一无② 发表于 2015-11-18 17:35:47

人民币换散,错误

输入任意 整币(>10元)
输出兑换成 5, 2, 1元 面值的人民币方法有几种
(每种面值 至少有 1个)
输入 50
输出 106

# include <stdio.h>
int main()
{
        int a,j,k,i,sum,num=0;
        scanf("%d",&a);
        for(j=1;j<=a;j++)
        {
               
      for(k=1;k<=a/2;k++)
                {
                       
                       for(i=1;i<=a/i;i++)
                        {
                                sum=i*5+k*2+j;
                                if(sum == a)
                   num++;
            }
                }
        }
        printf("%d",num);
        return 0;
}

我感觉我的程序 大体的思路应该是对的,但是输出答案和正确答案不一样。程序中肯定有某些问题,但是我不知道该怎么改了。

想不出来 发表于 2015-11-18 17:35:48

# include <stdio.h>
int main()
{
      int a,j,k,i,sum,num=0;
      scanf("%d",&a);
      for(j=1;j<=a;j++)
      {
               
      for(k=1;k<=a/2;k++)
                {
                        
                         for(i=1;i<=a/5;i++)//改成a/5就对了
                        {
                              sum=i*5+k*2+j;
                              if(sum == a)
                                                         num++;
                                        }
                }
      }
      printf("%d",num);
      return 0;
}

独一无② 发表于 2015-11-18 21:14:13

想不出来 发表于 2015-11-18 19:29


谢谢了,原来是粗心问题,太粗心了,而且还没有察觉出来。

鱼C工作室.YCGZS 发表于 2015-12-5 12:24:06

这个,好像还行
页: [1]
查看完整版本: 人民币换散,错误