给定三个数字“ a”,“ b”和“ c”作为输入。目的是在n秒后找到“ a”,“ b”和“ c”的计数/值,以使复制速率为:-
每2秒将a更改为b
每5秒将b更改为c
每12秒,每c变为2 a。
例如
输入-n_seconds = 62 a = 1 b = 1 c = 1
输出- 对于给定的播放速率,n秒后a的计数为:0
对于给定的播放速率,n秒后的b计数为:33
对于给定的播放速率,n秒后的c计数为:1
说明-60秒后,a为32,b = 0,c = 0。
再过2秒钟后,所有b都将变为c,c = 1。全部a变为b,b = 33。
输入 -n_seconds = 20 a = 1 b = 1 c = 1
输出- 对于给定的播放速率,n秒后a的计数为:0
对于给定的播放速率,n秒后的b计数为:0
对于给定的播放速度,n秒后的c计数为:6
解释
1秒:-a = 1,b = 1,c = 1
2秒:-a = 0,b = 2(1 + 1),c = 1→a至b 2秒后
4秒:-2秒后a = 0,b = 2,c = 1→a至b
5秒:-5秒后a = 0,b = 0,c = 3(1 + 2)→b到c
6秒:-2秒后a = 0,b = 0,c = 3→a至b
8秒:-a = 0,b = 0,c = 3→2秒后从a到b
10秒:-5秒后a = 0,b = 0,c = 3→b至c
12秒:-12秒后a = 6(0 + 2 * 3),b = 0,c = 0→c到2a
14秒:-a = 0,b = 6(0 + 6),c = 0→2秒钟后从a到b
15秒:-5秒后a = 0,b = 0,c = 6(0 + 6)→b至c
16秒:-a = 0,b = 0,c = 6→2秒钟后从a到b
18秒:-a = 0,b = 0,c = 6→2秒钟后从a到b
20秒:-5秒后a = 0,b = 0,c = 6→b至c
秒的LCM为60(2,5,12)。因此,每60秒a,b和c的变化将为:
60秒→a = 32,b = 0,c = 0
120秒→a = 32 * 32,b = 0,c = 0
180秒→a = 32 * 32 * 32,b = 0,c = 0。
对于以60的倍数为单位的秒,请计算上述的a。对于非整数倍,请计算最接近的多个温度,然后从temp + 1遍历以输入秒数,并使用mod 2、5或12进行计算。
以数字a,b和c作为输入。
以n_seconds为时间(以秒为单位)。
函数reproduction_rate(int n_seconds, int a, int b, int c)将获取所有参数,并以给定的播放速度在n秒后打印a,b和c的计数。
将temp = n_seconds / 60作为n_seonds下60的倍数。
根据公式计算a =(int)pow(32,temp)。(临时 )
现在,将temp = 60 * temp更新为小于或等于n_seconds的60的最接近倍数。
现在使用for循环从i = temp + 1到i = n_seconds遍历。
如果数字i是2的倍数,则通过将a和a加0来更新b。
如果数字i是5的倍数,则通过将b和b加0来更新c。
如果数字i是12的倍数,则通过将2c和c加0来更新a。
在for循环的末尾,打印a,b和c的最终值。
#include <bits/stdc++.h> using namespace std; void reproduction_rate(int n_seconds, int a, int b, int c) { int temp = n_seconds / 60; a = (int) pow(32, temp); temp = 60 * temp; for (int i = temp + 1; i <= n_seconds; i++) { if (i % 2 == 0) { b = b + a; a = 0; } if (i % 5 == 0) { c = c + b; b = 0; } if (i % 12 == 0) { a = a + (2 * c); c = 0; } } cout << "对于给定的播放速率,n秒后的a计数为: " << a << "\n"; cout << "对于给定的播放速率,n秒后的b计数为: " << b << "\n"; cout << "对于给定的播放速率,n秒后的c计数为: " << c; } int main() { int n_seconds = 72; int a = 2; int b = 1; int c = 1; reproduction_rate(n_seconds, a, b, c); return 0; }
如果我们运行上面的代码,它将生成以下输出-
输出结果
对于给定的播放速率,n秒后的a计数为: 68 对于给定的播放速率,n秒后的b计数为: 0对于给定的播放速率,n秒后的c计数为: 0