CODE[VS] 3040 中国余数定理 1

题目描述 Description

摘自算法导论。。。。。。

找出第k个被3,5,7除的时候,余数为2,3,2的数;

输入描述 Input Description

一个数k。

输出描述 Output Description

求出第k个符合条件的数。

样例输入 Sample Input

1

样例输出 Sample Output

23

数据范围及提示 Data Size & Hint

k>=1;

答案不超过long long所能存储的范围。

典型的数论题。

看起来很高级的样子。。。

我也以为挺简单的,显示青铜难度。。

所以就模拟了一下。

代码如下:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 using namespace std;
 7 
 8 long long k,t=1,i=23;
 9 
10 int main()
11 {
12     scanf("%lld",&k);
13     if(k==1)
14     {
15         printf("23");
16         return 0;
17     }
18     while(t!=k)
19     {
20         i+=105;
21         if(i%3==2&&i%5==3&&i%7==2)
22             t++;
23         if(t==k) break;
24     }
25     printf("%lld",i);
26     return 0;
27 }

我这也算是找了找规律了。。

最后一个点10的十几次方吧,,,很明显会T。。。

其实做的时候就应该注意到这个玩意儿。

hhhh,,

其实正解跟我那没差,(思路没差)。

就是又找了个规律(找了两个,我只找了一个)。

把循环次数确定了,

所以比较快。

ac代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<cstring>
 6 using namespace std;
 7 
 8 long long k,t=23;
 9 
10 int main()
11 {
12     scanf("%lld",&k);
13     for(int i=1;i<k;++i)
14         t+=105;
15     printf("%lld",t);
16     return 0;
17 }

如果你不开心,那我就把右边这个zz大炸分享给你吧,
你看,他这么好看,跟个大傻子一样看着你,你还伤心吗?
真的!这照片盯上他五秒钟就想笑了。
一切都会过去的。
时间时间会给你答案2333

猜你喜欢

转载自www.cnblogs.com/Mary-Sue/p/9173349.html
今日推荐