第六届蓝桥杯大赛省赛c语言c组(1-3)

来源:互联网 发布:吐槽电影网络节目 编辑:程序博客网 时间:2024/05/22 02:19
1.

隔行变色

Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。
小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,....
现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行。

请你直接提交这个整数,千万不要填写任何多余的内容。

思路:其实这题没什么,就是21-50行有多少个奇数。数数就可以数出来:21 23 25 27 29 31 33 35 37 39 41 43 45 47 49   15个蓝色的行


2.

立方尾不变

有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,....


请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。


请提交该整数,不要填写任何多余的内容。

思路:就是分别对最有一位取余,判断是否相等,当全部比较完毕后,没有不等的则数量加1

#include <stdio.h>void main(){    long count=0,l,i,ll,ii,n;//i l代表运算的数  ii ll代表取余进行比较的数  count代表实际数量  n用来代表实际的数 i的值和n相同,用来实际操作    for(int n=1;n<=10000;n++)    {        i=n;        l=i*i*i;        while(i)        {            ll=l%10;            ii=i%10;            if(ll!=ii)//分别取余后判断是否相等,如果不等则跳出循环                break;            l/=10;            i/=10;        }        if(!i)//如果上个循环并没有不正常结束,则说明这个数字满足题意,则count++        {            count++;            printf("%d\n",n);        }    }    printf("%d\n",count);}

3.

三羊献瑞

观察下面的加法算式:


      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气


(如果有对齐问题,可以参看【图1.jpg】)

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

思路:根据推断可以得到和的进位的三等于1,因为两个0-9的数字相加不能超过20。然后,我就暴力了

#include <stdio.h>void main(){    int a,b,c,d,e,f,g,h;    for(a=0;a<10;a++)        for(b=0;b<10;b++)            for(c=0;c<10;c++)                for(d=0;d<10;d++)                    for(e=1;e<=1;e++)                        for(f=0;f<10;f++)                            for(g=0;g<10;g++)                                for(h=0;h<10;h++)                                {                                    if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h                                       &&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h                                            &&c!=d&&c!=e&&c!=f&&c!=g&&c!=h                                                &&d!=e&&d!=f&&d!=g&&d!=h                                                    &&e!=f&&e!=g&&e!=h                                                        &&f!=g&&f!=h                                                            &&g!=h)                                                        if((1000*a+100*b+10*c+d)+(1000*e+100*f+10*g+b)
    ==(10000*e+1000*f+100*c+10*b+h))                                                            printf("1%d%d%d\n",f,g,b);                                }}





0 0
原创粉丝点击