2010年9月17日 星期五

ACM 10254 - The Priest Mathematician

#include <stdio.h>
#define MAXLEN 45

struct towerofHanoi
{
int num[MAXLEN];
};

struct towerofHanoi toH[10001];
struct towerofHanoi s;

void copy(int n, int m)
{
int i;
for (i = 0; i < MAXLEN; i ++)
toH[n].num[i] = toH[m].num[i];
}

void add(int n)
{
int i;
for (i = 0; i < MAXLEN; i ++)
{
toH[n].num[i] += s.num[i];
if (toH[n].num[i] >= 10)
toH[n].num[i + 1] ++, toH[n].num[i] %= 10;
}
}

void mult2s()
{
int i, j;
for (i = 0; i < MAXLEN; i ++)
s.num[i] *= 2;
for (i = 0; i < MAXLEN; i ++)
if (s.num[i] >= 10)
s.num[i + 1] ++, s.num[i] %= 10;
}

void creat()
{
s.num[0]= 1;
int i, count = 1, j, r = 0, v, k;
for (j = 0; j < MAXLEN; j ++)
toH[0].num[j] = 0;
for (i = 1; i <= 10000; )
{
for (j = 0; j < count; j ++, i ++)
if(i <= 10000)
{
copy(i, i - 1);
add(i);
}
else break;
mult2s(), count ++;
}
}


回目錄
回首頁

沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...