|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
运动会上,两个班级在为场上的运动员鼓掌加油。其中A班的同学每x秒钟鼓掌一次,B班的同学每y秒钟鼓掌一次,每次鼓掌都持续1秒钟。这样的话,在n秒钟之内,共有多少秒的时间有掌声?
x=2,y=3,n=10的情况如下:
因为你没有说最大值是多少,如果是超级大的值,这种题目必须说明清楚,因为普通代码行不通的,大多数需要数学知识。试试这个吧,因为我没有参数,所以无法测试对错:
- #include <stdio.h>
- int gcd (int a, int b) { return !b ? a : gcd(b, a%b); }
- int lcm (int a, int b) { return (a / gcd(a, b)) * b; }
- int main(){
-
- int x, y, z, n, a, b, sum = 0;
- scanf("%d%d%d", &x, &y, &n);
-
- z = lcm(x, y);
- a = (z/x + z/y - 1)*(n / z);
- b = (n % z)/x + (n % z)/y;
-
- sum = a + b;
-
- printf("%d", sum);
-
- return 0;
- }
复制代码
|
|