题解UVA10929【あなたが言うことができる11】を

タイトルポータル
最大1000桁ため、その文字列の使用を容易にするためにはもちろん、高精度または文字列の使用、。

偶数ビットと奇数ビットとの差を減算することによって桁のデジタル数が11で割り切れることができる場合、11の倍数です。

例えば:

  1. 2937及び偶数ビットは9 + 7 = 16であり、奇数ビット= 11 16-5で2 + 3 = 5、両者の差であるので、11の倍数であります
  2. 112234ともビット= 7 1 + 2 + 4であり、奇数ビットは1 + 2 + 3 = 6であり、2つの違いは、= 1 7-6であり、それは11の倍数ではありません

コード:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    while(1)
    {
        cin>>s;
        if(s=="0")return 0;//如果是0则退出
        long long l=0;//l表示总的差
        cout<<s;
        for(int i=0;i<s.size();i++)
        {
            if(i%2)l+=s[i]-'0';else l-=s[i]-'0';//如果是偶数位则加上这个数字,否则减去这个数字
        }
        if(l%11==0)printf(" is a multiple of 11.\n");else printf(" is not a multiple of 11.\n");//判断
    }
}

おすすめ

転載: www.cnblogs.com/pzc2004/p/11600845.html