zoukankan      html  css  js  c++  java
  • 数字整除

    题目描述
    定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。
    
    例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。
    
    输入
    输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=10^100),表示待判断的正整数。n=0表示输入结束,你的程序不应当处理这一行。
    
    输出
    对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。
    
    样例输入
    34
    201
    2098765413
    1717171717171717171717171717171717171717171717171718
    0
    样例输出
    1
    0
    1
    0
    
    #include<iostream>
    using namespace std;
    int main()
    {
        int n,tmp,t,len;
        string s;
        while(cin>>s){
            if(s=="0") break;
    len=s.length();
    if(len<=2){
        tmp=tmp=(s[len-1]-'0')+(s[len-2]-'0')*10;
        if(tmp%17==0) cout<<1<<endl;
        else cout<<0<<endl;
        continue;
    }
    else {
    tmp=(s[len-1]-'0')+(s[len-2]-'0')*10+(s[len-3]-'0')*100;
    //cout<<"tmp="<<tmp<<endl;
    for(int i=len-1;i>=3;i--){
        t=tmp%10;
    //    cout<<"t="<<t<<endl;
        tmp=tmp/10;
        tmp=tmp+(s[i-3]-'0')*100;
        tmp=tmp-5*t;
    //    cout<<"tmp="<<tmp<<endl;
    }
    if(tmp%17==0) cout<<1<<endl;
    else cout<<0<<endl;
            s.clear();
        }
        }
        return 0;
    } 
    View Code

     改进代码:

    #include<iostream>
    using namespace std;
    int main()
    {
        int n,tmp,t,len;
        string s;
        while(cin>>s){
            if(s=="0") break;
    len=s.length();
    tmp=(s[len-1]-'0')+(s[len-2]-'0')*10;
    //cout<<"tmp="<<tmp<<endl;
    for(int i=len-1;i>=2;i--){
        t=tmp%10;
    //    cout<<"t="<<t<<endl;
        tmp=tmp/10;
        tmp=tmp+(s[i-2]-'0')*10;
        tmp=tmp-5*t;
    //    cout<<"tmp="<<tmp<<endl;
    }
    if(tmp%17==0) cout<<1<<endl;
    else cout<<0<<endl;
            s.clear();
        }
        return 0;
    } 
    View Code
  • 相关阅读:
    木马控制技术(二) -- 端口复用
    OSQL.EXE 命令行下脱裤mssql
    移动App中常见的Web漏洞
    phpcms前台任意代码执行漏洞(php<5.3)
    LeetCode OJ--Copy List with Random Pointer **
    LeetCode OJ-- Container With Most Water
    LeetCode OJ--Combinations *
    LeetCode OJ-- Combination Sum II **
    LeetCode OJ--Combination Sum **
    LeetCode OJ-- Candy **
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10438192.html
Copyright © 2011-2022 走看看