美文网首页
航电oj 1014

航电oj 1014

作者: 欢城深喟 | 来源:发表于2019-02-03 14:24 被阅读0次

    C++ 输出对齐函数 setw()

    题目链接

    题目大意:给出 step 和 mod,按照公式计算seed(x+1) = [seed(x) + STEP] % MOD的值,如果一个周期内 seed(x) 出现 0~mod-1 的 mod 个值,那么就是 Good Choice,如果不到 mod 个值就开始循环,就是 Bad Choice。按照给定格式输出。

    解题思路:记录下一个循环周期的个数,如果等于 mod 就是 Good Choice,否则 Bad Choice

    #include<iostream>
    #include<iomanip>
    using namespace std;
    
    int main(){
        int step, mod;
        int buf[100001];
        while(cin>>step>>mod){
            int cnt = 0; //cnt统计周期
            
            for(int i=1;i<=mod;i++){ //默认buf[0]==0;
                buf[i] = (buf[i-1]+step) % mod;
                cnt++;
                if(buf[i] == buf[0]) break; 
            }
            
            if(cnt == mod){
                cout<<setw(10)<<step<<setw(10)<<mod<<"    "<<"Good Choice"<<endl;
            }else{
                cout<<setw(10)<<step<<setw(10)<<mod<<"    "<<"Bad Choice"<<endl;
            }
            cout<<endl;
        }
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:航电oj 1014

          本文链接:https://www.haomeiwen.com/subject/eavysqtx.html