《求助》怎么样一次性输入多组三个数,最后再一次性输出每组的最小公倍数?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"); } }