蓝桥杯真题(1)

核桃的数量 

问题描述

小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:

1. 各组的核桃数量必须相同

2. 各组内必须能平分核桃(当然是不能打碎的)

3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)

输入格式
输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)
输出格式
输出一个正整数,表示每袋核桃的数量。
样例输入1
2 4 5
样例输出1
20
样例输入2
3 1 1
样例输出2
3

#include<stdio.h>

int f(int a,int b)
{
	int i,t;
	if(b>a)
	{
		t=a;
		a=b;
		b=t;
	}
	for(i=a;;i=i+a)
	{
		if(i%a==0&&i%b==0)break;
	}
	return i;
}

int main()
{
	int a,b,c,r;
	
	scanf("%d%d%d",&a,&b,&c);
	
	r=f(a,b);
	r=f(r,c);
	
	printf("%d
",r);
	
	return 0;
}

   打印十字图  


复制代码

/*
问题描述
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2
3
样例输出2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。


心得体会:打印图形的题,一定不能急躁,要善于发现图形的规律,并且按照规律一步一步来,先调试简单的图形,然后再网上测试. 

*/


#include<stdio.h>

char a[10000][10000];

int main()
{
    int n,i,j,k,b,r,c,d,t,m;
    scanf("%d",&n);
    
    int row=9+(n-1)*4,cll=row,mid=row/2+1;
    k=n-1;
    for(i=1;i<=row/2;k--)
    {
        m=5+4*k;
        b=(row-m)/2;
    //    if(i%2==1)
    //    {
            a[i][mid]='$';
            for(r=mid+1;r<=row-b;r++)
            {
                a[i][r]=a[i][row-r+1]='$';
            }
            if(b==2)
            {
                a[i][r]=a[i][row-r+1]='.';r++;
                a[i][r]=a[i][row-r+1]='.';r++;
            }
            else
            {
                a[i][r]=a[i][row-r+1]='.';r++;t=r+2;
                for(;r<=t;r++)a[i][r]=a[i][row-r+1]='$';
                for(;r<=row;)
                {
                    a[i][r]=a[i][row-r+1]='.';r++;
                    a[i][r]=a[i][row-r+1]='$';r++;
                }
            }
            i++;
    //    }
    //    else
    //    {
            c=m-2;d=(cll-c)/2;
            if(m==1)
            {
                a[i][mid]='$';r=mid+1;
            }
            else
            {
                a[i][mid]='.';
                for(r=mid+1;r<=row-d;r++)    a[i][r]=a[i][row-r+1]='.';
                a[i][r]=a[i][row-r+1]='$';r++;
            }
            //if(d-1==2)
        //    {
                a[i][r]=a[i][row-r+1]='.';r++;
                a[i][r]=a[i][row-r+1]='.';r++;
        //    }
            
            for(;r<=row;)
            {
                a[i][r]=a[i][row-r+1]='.';r++;
                a[i][r]=a[i][row-r+1]='$';r++;
            }
            
    //    }
    i++;
    }
    
    a[i][mid]='$';
    for(r=mid+1;r<=mid+2;r++)a[i][r]=a[i][row-r+1]='$';
    for(;r<=row;)
    {
        a[i][r]=a[i][row-r+1]='.';r++;
        a[i][r]=a[i][row-r+1]='$';r++;
    }
    
    
    for(i=1;i<=row/2+1;i++)
    {
        for(j=1;j<=cll;j++)
        {
            printf("%c",a[i][j]);
        }
        printf("
");
    }
    
    for(i=row/2;i>0;i--)
    {
        for(j=1;j<=cll;j++)
        {
            printf("%c",a[i][j]);
        }
        printf("
");
    }
    
    return 0;
}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注