- 此題數字過大,需用字串存取,轉成數值必須經過ASCII碼的換算。
- 判斷11的倍數:偶數位和與奇數位和之差需要是11的倍數。
- 判斷N是否為0,若用C字串(字元陣列)必須判斷N[0]==’0’和N[1]==’\0’,不然只判斷N[0]==’0’會WA。
C++(0.060)
/*******************************************************/
/* UVa 10929 You can say 11 */
/* Author: Maplewing [at] knightzone.studio */
/* Version: 2012/03/31 */
/*******************************************************/
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
string N;
int odd, even;
while( getline( cin, N ) && N != "0" ){
odd = 0;
even = 0;
for( int i = 0 ; i < N.length() ; i++ )
if( i%2 ) odd += N[i] - '0';
else even += N[i] - '0';
printf( "%s is ", N.c_str() );
if( (odd-even) % 11 ) printf( "not " );
printf( "a multiple of 11.\n" );
}
return 0;
}