答案是
第一位1 第五位8 第224位(最後一位)8 其餘位皆為9
4999899999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999
9999999999999998
程序如下
using namespace std;
#include
class bignum
{
public:
int ele[800];
bignum(){
for(int i=0; i
}
void update(){
int ip =0;
int i=0;
while(ip==0){
if(ele[i] > ele[i+1]){
ele[i] --;
ele[i+1] ++;
ip =1;
}
i++;
}
}
int bitsum(){
int sum=0;
for(int i=0; i
return sum;
}
public:
void out(){
int ip =799;
while(ele[ip]==0)ip--;
for(int i=ip; i>=0; i--)cout
cout
}
int mod2009(){
int b[800];
int temp;
for(int i=0; i
for(int i=799; i >= 3; i--){
temp = b[i]*1000+b[i-1]*100+b[i-2]*10+b[i-3];
// if(temp>0)cout
//
if(temp>=2009) {
// cout
temp = temp % 2009;
b[i-3]= temp %10;
b[i-2]= (temp % 100)/10;
b[i-1]= (temp)/100;
}
else {
b[i-1] += b[i]*10;
b[i]=0;
}
// if(temp>0)cout
//
}
return temp;
}
};
int main(){
bignum a;
// set up the smallest number with bitsum of 2009
for(int i=0; i
a.ele[223]=2;
a.out();
cout
int kk= a.mod2009();
while(kk != 0){ a.update();
a.out();
kk= a.mod2009();
cout
}
return 0;
}
答案如下:共224位
所有跟帖:
• 回複:答案如下:共224位 (重貼,貼內不能連續有兩個小於號 ) -多多鳥- ♀ (1914 bytes) () 05/12/2009 postreply 06:01:36
• 這個大概是第二小的,還有一個更小 -康MM- ♀ (0 bytes) () 05/12/2009 postreply 06:07:42
• 我的程序錯了。這個是第3小的。前40個如下。 -多多鳥- ♀ (4638 bytes) () 05/14/2009 postreply 05:19:11