| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么错了呢。。sample 无头绪 有数据么。。#include <stdio.h>
#include <iostream>
using namespace std;
int num[4][88];
int max(int a, int b, int c)
{
int max_abc = a;
if (max_abc > b)
max_abc = b;
if (max_abc > c)
max_abc = c;
return max_abc;
}
void caculate(int i, int j)
{
int l, k;
l = max(num[j][0], num[(j + 1) % 4][0], num[(j + 2) % 4][0]);
for (k = l; k >= 0; k--) {
num[i][k] = 0;
}
for (k = 1; k < l + 3; k++){
num[i][k] += num[j][k] + num[(j + 1) % 4][k] + num[(j + 2) % 4][k];
while (num[i][k] >= 10) {
num[i][k] -= 10;
num[i][k + 1]++;
}
}
l += 3;
while (num[i][l] == 0 )
l--;
num[i][0] = l;
}
int main()
{
int a, b, c, i;
while (scanf("%d%d%d", &a, &b, &c) != EOF) {
if (a == 0 && b == 0 && c == 0) {
printf("0\n");
continue;
}
for (i = 0; i < 88; i++) {
num[0][i] = 0;
num[1][i] = 0;
num[2][i] = 0;
num[3][i] = 0;
}
i = 1;
while (a > 0) {
num[0][i++] = a % 10;
a /= 10;
}
num[0][0] = i;
i = 1;
while (b > 0) {
num[1][i++] = b % 10;
b /= 10;
}
num[1][0] = i;
i = 1;
while (c > 0) {
num[2][i++] = c % 10;
c /= 10;
}
num[2][0] = i;
for (i = 3; i < 100; i++) {
caculate(i % 4, (i - 3 ) % 4);
}
for (i = num[3][0]; i > 0; i--) {
printf("%d", num[3][i]);
}
printf("\n");
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator