我看了白色纯度的博客,似懂非懂的,自己列出数组,才明白。废话不多数 ,附上数组(在最下面)
---------------------------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
#include<math.h>
int main()
{
int n,k,tmp,num=0;
scanf("%d %d",&n,&k);
for(int i=0;i<10;i++){//k的最大值1000=1111101000B,共计10位数,for循环10次;
if(k&1){//取k的每一位判断其指数i有或者没有;
num+=pow(n,i);
}
k=k>>1;
}
printf("%d",num);
return 0;
}
#include<math.h>
int main()
{
int n,k,tmp,num=0;
scanf("%d %d",&n,&k);
for(int i=0;i<10;i++){//k的最大值1000=1111101000B,共计10位数,for循环10次;
if(k&1){//取k的每一位判断其指数i有或者没有;
num+=pow(n,i);
}
k=k>>1;
}
printf("%d",num);
return 0;
}
---------------------------------------------------------------------------------------------------------------------------------------------------
k | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
k 二进制 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 | 10001 | 10010 | 10011 | 10100 | 10101 |
结果 | 1 | 4 | 5 | 16 | 17 | 20 | 21 | 64 | 65 | 68 | 69 | 80 | 81 | 84 | 85 | 256 | 257 | 260 | 261 | 272 | |
4为底的冥 | 4^0 | 4^1 | 4^1 | 4^2 | 4^2 | 4^2 | 4^2 | 4^3 | 4^3 | 4^3 | 4^3 | 4^3 | 4^3 | 4^3 | 4^3 | 4^5 | 4^5 | 4^5 | 4^5 | 4^5 | 4^5 |
4^0 | 4^0 | 4^1 | 4^1 | 4^0 | 4^1 | 4^1 | 4^2 | 4^2 | 4^2 | 4^2 | 4^0 | 4^1 | 4^1 | 4^2 | 4^2 | ||||||
4^0 | 4^0 | 4^0 | 4^1 | 4^1 | 4^0 | 4^0 | |||||||||||||||
4^0 |