搜索
查看: 3326|回复: 6
打印 上一主题 下一主题

挑战题12,,问我的程序哪里错了,求教(我的结果是2106426112)

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-5 20:13:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
/*首先用三个循环语句求出是满足a+b+c+d=10,a,b,c,d>=1的的各种排列*/#include <stdio.h>#include <math.h>int main(){        long int i,a,b,c,d,mult=0,mult_final=0,aa,bb,cc,dd;         int q[11]={0,5,4,8,3,2,9,8,7,5,6};        for(a=1;a<=7;a++)        {                for(b=1;b<=8-a;b++)                {                        for(c=1;c<=9-a-b;c++)                        {                                aa=0;                                bb=0;                                cc=0;                                dd=0;                                d=10-a-b-c;                                for(i=1;i<=a;i++)                                {aa=aa+q[i]*pow(10,(a-i));}                                for(i=a+1;i<=a+b;i++)                                {bb=bb+q[i]*pow(10,(a+b-i));}                                for(i=a+b+1;i<=a+b+c;i++)                                {cc=cc+q[i]*pow(10,(a+b+c-i));}                                for(i=a+b+c+1;i<=10;i++)                                {dd=dd+q[i]*pow(10,(10-i));}                                printf("%d %d %d %d\t %d %d %d %d \n",a,b,c,d,aa,bb,cc,dd);                                        mult=aa*bb*cc*dd;                                if(mult>mult_final)                                {                                        mult_final=mult;                                        printf("%d %d %d %d\n",aa,bb,cc,dd);                                }                        }                }        }        printf("mult_final=%d\n",mult_final);        return 0;}

来自 2#
 楼主| 发表于 2012-9-5 22:28:57 | 只看该作者
/*请在5483298756中插入3个乘号,使得乘积最大?请问乘积最大是多少?*/
#include <stdio.h>
#include <math.h>
int main()
{
        long long a,b,c,d,i,mult=0,mult_final=0,aa,bb,cc,dd;
        int q[11]={0,5,4,8,3,2,9,8,7,5,6};
        for(a=1;a<=7;a++)
        {
                for(b=1;b<=8-a;b++)
                {
                        for(c=1;c<=9-a-b;c++)
                        {
                                d=10-a-b-c;
                                aa=0;
                                bb=0;
                                cc=0;
                                dd=0;
                                for(i=1;i<=a;i++)
                                {aa=aa+q[i]*pow(10,(a-i));}
                                for(i=1;i<=b;i++)
                                {bb=bb+q[a+i]*pow(10,(b-i));}
                                for(i=1;i<=c;i++)
                                {cc=cc+q[a+b+i]*pow(10,(c-i));}
                                for(i=1;i<=d;i++)
                                {dd=dd+q[a+b+c+i]*pow(10,(d-i));}
                                mult=aa*bb*cc*dd;
                                if(mult>mult_final)
                                {
                                        mult_final=mult;
                                }
                        }
                }
        }
        printf("mult_final=%I64d\n",mult_final);
    sleep(5000);
        return 0;
}


原来是需要把输出格式改一下  %I64d,并且声明时用long long
板凳
 楼主| 发表于 2012-9-5 20:15:13 | 只看该作者
/*首先用三个循环语句求出是满足a+b+c+d=10,a,b,c,d>=1的的各种排列*/
#include <stdio.h>
#include <math.h>
int main()
{
        long int i,a,b,c,d,mult=0,mult_final=0,aa,bb,cc,dd;
        int q[11]={0,5,4,8,3,2,9,8,7,5,6};
        for(a=1;a<=7;a++)
        {
                for(b=1;b<=8-a;b++)
                {
                        for(c=1;c<=9-a-b;c++)
                        {
                                aa=0;
                                bb=0;
                                cc=0;
                                dd=0;
                                d=10-a-b-c;
                                for(i=1;i<=a;i++)
                                {aa=aa+q[i]*pow(10,(a-i));}
                                for(i=a+1;i<=a+b;i++)
                                {bb=bb+q[i]*pow(10,(a+b-i));}
                                for(i=a+b+1;i<=a+b+c;i++)
                                {cc=cc+q[i]*pow(10,(a+b+c-i));}
                                for(i=a+b+c+1;i<=10;i++)
                                {dd=dd+q[i]*pow(10,(10-i));}
                                printf("%d %d %d %d\t %d %d %d %d \n",a,b,c,d,aa,bb,cc,dd);       
                                mult=aa*bb*cc*dd;
                                if(mult>mult_final)
                                {
                                        mult_final=mult;
                                        printf("%d %d %d %d\n",aa,bb,cc,dd);
                                }
                        }
                }
        }
        printf("mult_final=%d\n",mult_final);
        return 0;
}
地板
 楼主| 发表于 2012-9-5 20:16:03 | 只看该作者
直接看沙发吧,原问题看不清了
5#
发表于 2012-9-5 20:18:27 | 只看该作者
#include <stdio.h>
#include <math.h>
int main()
{
        int a,b,c,d,i,mult=0,mult_final=0,aa,bb,cc,dd;
        int q[10]={5,4,8,3,2,9,8,7,5,6};
        for(a=1;a<=7;a++)
        {
                for(b=1;b<=8-a;b++)
                {
                        for(c=1;c<=9-a-b;c++)
                        {
                               
                                d=10-a-b-c;
                                aa=0;
                                bb=0;
                                cc=0;
                                dd=0;
                                for(i=1;i<=a;i++)
                                aa=aa+q[i-1]*pow(10,(a-i)*1.0);
                                for(i=1;i<=b;i++)
                                bb=bb+q[a+i-1]*pow(10,(b-i)*1.0);
                                for(i=1;i<=c;i++)
                                cc=cc+q[a+b+i-1]*pow(10,(c-i)*1.0);
                                for(i=1;i<=d;i++)
                                        dd=dd+q[a+b+c+i-1]*pow(10,(d-i)*1.0);
                                mult=aa*bb*cc*dd;
                                if(mult>mult_final)
                                {
                                        mult_final=mult;
                                }
                        }
                }
        }
        printf("mult_final=%d\n",mult_final);
        return 0;
}
/*我的程序也是2106426112.*/同求修改。
6#
发表于 2012-10-1 12:49:57 | 只看该作者
longlong很长的么?

点评

哈哈哈哈哈哈  发表于 2015-6-22 17:33
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表