您的位置:首页 > 编程语言 > C语言/C++

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

2016-12-11 21:09 579 查看
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);
}
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: