打印

[原创] 一道经典的C++题,关于分钱的问题,适合新手阅读

main()
{
int a,b,c;
int s=0;
for(a=1;a<100;a+)
for(b=1;b<100;b++)
for(c=1;c<100;c++)
if(a+2*b+5*c==100)
{
s++;
printf("a=%2d,b=%2d,c=%2d",a,b,c);
if(s%3==0)
printf("\n");
}
}

TOP

#include"stdio.h"
main()
{
    int i,j,k;
    for(i=1;i<=100;i++)
        for(j=1;j<=34;j++)
            for(k=1;k<=20;k++)
               if(i+j*2+k*5==100)
                  printf("%d  %d  %d\n",i,j,k);
}

可以简化一下循环;

TOP

#include <iostream.h>

void main()
{
        int i,j,k;
        for (i=1;i<100;i++)
        for(j=1;j<100;j++)
        for(k=1;k<100;k++)
       if ((i+2*j+5*k)==100)
       cout<<"一分的:"<<i<<"  二分的:"<<j<<"  五分的:"<<j<<endl;
}

TOP

引用:
原帖由 benben2301 于 2008-3-10 16:08 发表
very easy

#include

void main()
{
        int i,j,k;
        for (i=1;i
前面的c语句看的懂,后面COUNT之后一句看不懂了
大邹

TOP

顶虽然看不懂

TOP

楼主答案与题意不符
一:100分==1元
二:有三种币值:一分,二分,五分,而不是都是1分或1,2,3分三种
正解如下
复制内容到剪贴板
代码:
#include <iostream.h>
#define N 100
void main()
{
int one,two,three;
int num=0,q=0;
cout<<"一分\t"<<"二分\t"<<"五分\t"<<endl;
for(one=0;one<=100;one++)
  for(two=0;two<=50;two++)
   for(three=0;three<=20;three++)
   {
    num=one+two*2+three*5;
    if(num==N)
    {
     q++;
     cout<<one<<"\t"<<two<<"\t"<<three<<endl;
    }
   }
   cout<<"共有"<<q<<"种分法"<<endl;}
[ 本帖最后由 zoutommy 于 2008-7-22 19:49 编辑 ]
大邹

TOP

113楼的,你的简化法我没看明白,而且三个变量初值应赋值0,而非1,改后为:
复制内容到剪贴板
代码:
#include"stdio.h"
main()
{
    int i,j,k,s=0;
    for(i=0;i<=100;i++)
        for(j=0;j<=50;j++)
            for(k=0;k<=20;k++)
               if(i+j*2+k*5==100)
                           {s++;printf("%d  %d  %d\n",i,j,k);
}
                           printf("共%d种",s);
}
[ 本帖最后由 zoutommy 于 2008-7-22 19:48 编辑 ]
大邹

TOP

顶呀~~~~~~

TOP

seeseseseseseses

TOP

我想看看答案可以吧?

TOP

Processed in 0.767131 second(s), 5 queries, Gzip enabled.