就是模拟除法的运算,但是从奥数上可以用奇数位的和减去偶数位的和后mod11.如果是0则可以整除0,反之不能。
/*************************************************************************
> File Name: 10929.cpp
> Author: Toy
> Mail: ycsgldy@163.com
> Created Time: 2013年05月27日 星期一 22时17分43秒
************************************************************************/
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <climits>
#include <sstream>
#include <fstream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
using namespace std;
const int INF = 0x7fffffff;
string str;
int main ( ) {
while ( cin >> str ) {
if ( str[0] == '0' && str[1] == '\0' ) break;
int len = str.length ( );
int cnt = 0, tmp = 0;
while ( cnt < len ) {
tmp = tmp * 10 + str[cnt] - '0';
if ( tmp >= 11 ) tmp = tmp % 11;
cnt++;
}
if ( !tmp ) cout << str << " is a multiple of 11." << endl;
else cout << str << " is not a multiple of 11." << endl;
}
return 0;
}