蓝桥杯真题(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\n",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("\n"); } for(i=row/2;i>0;i--) { for(j=1;j<=cll;j++) { printf("%c",a[i][j]); } printf("\n"); } return 0; }