2009-05-10 16:10:21來源不明

2006 NOIP 普及組 NOIP2006 4.數列

作法:要轉成2進位
想法:最底下的網址...

/*********************************************************/

#include<stdio.h>
#include<stdlib.h>
main()
{
 int k,n;
 while(scanf("%d %d",&k,&n)==2)
   {
    int num[20]={0},ans=0,a;
    num[0]=n;/*先將n轉成2進位*/
     for(a=0;a<20;a++)
      if(num[a]>=2)
       {
         num[a+1]=num[a]/2;
         num[a]=num[a]%2;
       }
     int copyk=1;
     for(a=0;a<20;a++)
      {
        if(num[a]==1)
         ans=ans+copyk;
         copyk=copyk*k;
      }
      printf("%d\n",ans);
   }
 return 0;
}
/*http://iknow.baidu.com/question/15552054.html*/