您的位置:首页 > 其它

hdu 5373 模拟

2015-08-11 19:49 246 查看
简单模拟题,可以利用一下能被11整除的数的特点:奇数位的数字和与偶数位的数字和之差能被11整除。

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
using namespace std;

const int N = 1000000;
int s
;
int mid
;

int main ()
{
int n, t, _case = 0;
while ( scanf("%d%d", &n, &t) != EOF )
{
if ( n == -1 && t == -1 ) break;
int sum = 0, p = 0, cnt = 0;
while ( n )
{
sum += n % 10;
mid[p++] = n % 10;
n /= 10;
}
for ( int i = p - 1; i >= 0; i-- )
{
s[cnt++] = mid[i];
}
while ( t-- )
{
int tmp = sum;
p = 0;
while ( tmp )
{
sum += tmp % 10;
mid[p++] = tmp % 10;
tmp /= 10;
}
for ( int i = p - 1; i >= 0; i-- )
{
s[cnt++] = mid[i];
}
}
int ssum = 0;
for ( int i = 0; i < cnt; i++ )
{
if ( i & 1 ) ssum += s[i];
else ssum -= s[i];
}
_case++;
if ( ssum % 11 == 0 )
{
printf("Case #%d: Yes\n", _case);
}
else
{
printf("Case #%d: No\n", _case);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: