ZOJ4106 Lucky 7 in the Pocket

本文介绍了一个高效的算法,用于找出大于等于输入数n的最小整数,该整数能被7整除但不能被4整除。通过判断n是否能被7整除及其与4的关系,算法快速定位到满足条件的整数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给出一个数n 要你求出一个大于等于n且能被7整除但不能被4整除的数

水题

AC代码:

 1 #include<bits/stdc++.h>
 2 #define pi acos(-1)
 3 typedef long long ll;
 4 typedef unsigned long long ull;
 5 using namespace std;
 6 
 7 namespace io {
 8     const int SIZE = 1e7 + 10;
 9     char inbuff[SIZE];
10     char *l, *r;
11     inline void init() {
12         l = inbuff;
13         r = inbuff + fread(inbuff, 1, SIZE, stdin);
14     }
15     inline char gc() {
16         if (l == r) init();
17         return (l != r) ? *(l++) : EOF;
18     }
19     void read(int &x) {
20         x = 0; char ch = gc();
21         while(!isdigit(ch)) ch = gc();
22         while(isdigit(ch)) x = x * 10 + ch - '0', ch = gc();
23     }
24 } using io::read;
25 
26 bool cmp(const int &a, const int &b){
27     return a > b;
28 }
29 
30 int main(){
31     ios::sync_with_stdio(false);
32     int t;
33     cin>>t;
34     int n;
35     while (t--){
36         cin>>n;
37         int m;
38         if (!(n % 7)){
39             if (n % 4) cout<<n<<endl;
40             else cout<<n + 7<<endl;
41         }
42         else{
43             n = (n / 7 + 1) * 7;
44             while (!(n % 4)){
45                 n += 7;
46             }
47             cout<<n<<endl;
48         }
49     }
50     return 0;
51 }

 

转载于:https://www.cnblogs.com/Misuchii/p/10983730.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值