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*/