鱼C论坛

 找回密码
 立即注册
查看: 1988|回复: 5

[已解决]c语言题目

[复制链接]
发表于 2021-1-18 15:37:16 | 显示全部楼层 |阅读模式
2鱼币
有如下的加法算式。其中每个汉字代表一个数字。
(如果存在对齐问题,可参见【图1.png】)

               年
             大年
           过大年
         能过大年
       怎能过大年
     我怎能过大年
+  让我怎能过大年
------------------
   能能能能能能能

请填写“让我怎能过大年” 所代表的整数。
所有数字连在一起,中间不要空格。例如:"3125697"。当然,这个不是正确的答案。

注意:只填写一个整数,不要填写任何多余的内容。



最佳答案
2021-1-18 15:37:17
#include <stdio.h>
int main()
{
        printf("0000000\n");
        int a,b,c,d,e,f,g;
        int n1,n2,n3,n4;
        for(g=0;g<=9;g++)//年
        {
                for(d=0;d<=9;d++)//能
                {
                        n1=(g*7)%10;//求出各位数
                        //printf("g=%d d=%d n1=%d\n",g,d,n1);
                        if(d==n1)
                        {
                                for(f=0;f<=9;f++)//大
                                {
                                        n2=(f*10*6+g*7)%100-n1;//求出十位数
                                        //printf("f=%d n2=%d\n",f,n2);
                                        if(d*10==n2)
                                        {
                                                for(e=0;e<=9;e++)//过
                                                {
                                                        n3=(e*100*5+f*10*6+g*7)%1000-n2-n1;//求出百位数
                                                        //printf("e=%d n3=%d\n",e,n3);
                                                        if(d*100==n3)
                                                        {
                                                                n4=(d*1000*4+e*100*5+f*10*6+g*7)%10000-n3-n2-n1;//求出千位数
                                                                //printf("n4=%d\n",n4);
                                                                if(d*1000==n4)//后面循环的次数少了 可以不求更高的位数 直接遍历
                                                                {
                                                                        for(a=0;a<=9;a++)//让
                                                                        {
                                                                                for(b=0;b<=9;b++)//我
                                                                                {
                                                                                        for(c=0;c<=9;c++)//怎
                                                                                        {
                                                                                                if(d!=0)
                                                                                                {
                                                                                               
                                                                                                        int sum1,sum2;
                                                                                                        sum1=7*g+6*f*10+5*e*100+4*d*1000+3*c*10000+2*b*100000+a*1000000;
                                                                                                        sum2=d*1000000+d*100000+d*10000+d*1000+d*100+d*10+d;
                                                                                                        //printf("sum1=%d\n",sum1);
                                                                                                        //printf("sum2=%d\n",sum2);
                                                                                                        if(sum1==sum2)
                                                                                                        {
                                                                                                                printf("%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g);
                                                                                                        }
                                                                                                }
                                                                                        }
                                                                                }
                                                                        }
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
                }               
        }               
}

最佳答案

查看完整内容

#include int main() { printf("0000000\n"); int a,b,c,d,e,f,g; int n1,n2,n3,n4; for(g=0;g
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-18 15:37:17 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>
int main()
{
        printf("0000000\n");
        int a,b,c,d,e,f,g;
        int n1,n2,n3,n4;
        for(g=0;g<=9;g++)//年
        {
                for(d=0;d<=9;d++)//能
                {
                        n1=(g*7)%10;//求出各位数
                        //printf("g=%d d=%d n1=%d\n",g,d,n1);
                        if(d==n1)
                        {
                                for(f=0;f<=9;f++)//大
                                {
                                        n2=(f*10*6+g*7)%100-n1;//求出十位数
                                        //printf("f=%d n2=%d\n",f,n2);
                                        if(d*10==n2)
                                        {
                                                for(e=0;e<=9;e++)//过
                                                {
                                                        n3=(e*100*5+f*10*6+g*7)%1000-n2-n1;//求出百位数
                                                        //printf("e=%d n3=%d\n",e,n3);
                                                        if(d*100==n3)
                                                        {
                                                                n4=(d*1000*4+e*100*5+f*10*6+g*7)%10000-n3-n2-n1;//求出千位数
                                                                //printf("n4=%d\n",n4);
                                                                if(d*1000==n4)//后面循环的次数少了 可以不求更高的位数 直接遍历
                                                                {
                                                                        for(a=0;a<=9;a++)//让
                                                                        {
                                                                                for(b=0;b<=9;b++)//我
                                                                                {
                                                                                        for(c=0;c<=9;c++)//怎
                                                                                        {
                                                                                                if(d!=0)
                                                                                                {
                                                                                               
                                                                                                        int sum1,sum2;
                                                                                                        sum1=7*g+6*f*10+5*e*100+4*d*1000+3*c*10000+2*b*100000+a*1000000;
                                                                                                        sum2=d*1000000+d*100000+d*10000+d*1000+d*100+d*10+d;
                                                                                                        //printf("sum1=%d\n",sum1);
                                                                                                        //printf("sum2=%d\n",sum2);
                                                                                                        if(sum1==sum2)
                                                                                                        {
                                                                                                                printf("%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g);
                                                                                                        }
                                                                                                }
                                                                                        }
                                                                                }
                                                                        }
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
                }               
        }               
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-24 16:38:49 | 显示全部楼层

本人菜鸡  只会用比较麻烦的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-24 20:49:05 | 显示全部楼层
所以,你这啥意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-27 15:30:34 | 显示全部楼层
2736946915 发表于 2021-1-24 20:49
所以,你这啥意思?

其实就是让我怎能过大年每个字都代表一个数字吧  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-27 20:50:12 | 显示全部楼层
用string.replace()替换不就好了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 04:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表