《求助》怎么样一次性输入多组三个数,最后再一次性输出每组的最小公倍数?ACM题格式问题
初次做ACM题,求指教!下面两道题我把代码复制到OJ里得到的都是Presentation Error
例1:
小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)
输入:
输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)
2 4 5
3 1 1
输出:
输出一个正整数,表示每袋核桃的数量。
20
3
程序代码:#include<stdio.h>
int gb(int x,int y)
{
int n;
for(n=1;n<=y;n++)
{
if((n*x)%y==0)
return n*x;
}
}
int main()
{
int a[3];
int i,n,j;
while( scanf("%d%d%d",&a[0],&a[1],&a[2])==3)
{
for(i=0;i<3;i++)
{
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{
n=a[j];
a[j]=a[j+1];
a[j+1]=n;
}
}
j=gb(a[0],a[1]);
n=gb(a[2],j);
printf("%d\n",n);
}
}例2:
水仙花数
输入:
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。
100 120
300 380
输出:
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;如果给定的范围内不存在水仙花数,则输出no;每个测试实例的输出占一行。
no
370 371
程序代码:
#include<stdio.h>
int main()
{
int m,n,i,q,b,g,t=0;
while(scanf("%d%d",&m,&n)==2)
{
for(i=m;i<=n;i++)
{
q=i/100;
b=(i/10)%10;
g=i%10;
if(q*q*q+b*b*b+g*g*g==i)
{
printf("%d ",i);
t++;
}
}
printf("\n");
if(t==0)
printf("no\n");
}
}



