蓝桥杯:核桃的数量

来源:互联网 发布:淘宝联盟反返的钱 编辑:程序博客网 时间:2024/04/20 13:27
问题描述:

小张是软件项目经理,他带领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 gcd(int m,int n){return n==0?m:gcd(n,m%n);} int main(){int a,b,c;scanf("%d%d%d",&a,&b,&c); //while((scanf("%d%d%d",&a,&b,&c))!=EOF){int min1 = (a*b)/gcd(a,b);//a,b的最小公倍数 int min2 = (min1*c)/gcd(min1,c);//a,b,c的最小公倍数 printf("%d\n",min2);}return 0;}

而这样不能通过,无语了:
#include<stdio.h>#include<stdlib.h> int fun(int m,int n){int x,y;x=m;y=n;int p;int temp;while(y){temp = x%y;x = y;y=temp;}return x;//p=m*n/x;}int main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);{int min1 = (a*b)/fun(a,b);int min2 = (min1*c)/fun(min1,c);printf("%d\n",min2);//printf("%d\n",fun(fun(a,b),c));} }
后来发现用C语言写的必须加上return 0;再次无语了~\(≧▽≦)/~啦啦啦

0 0
原创粉丝点击