
本博文摘抄于《算法笔记》胡凡的十进制转化为P进制代码,具体思想如下,给定一个十进制x,那么我转化为P进制,直接不断的除P取余倒着读,给出一个实例,比如十进制 12,那么转化为Q进制,假如是2
12 /2 余数 0 6 /2 余数 0 3 /2 余数 1 1 /2 余数 1
因此代码模板如下
//将十进制y转化为Q进制数Z // 12 2 // 12 /2 0 // 6 /2 0 // 3/2 1 // 1 #includeint main() { int P,x,result=0; scanf("%d%d",&x,&P); //将十进制x转化为P进制的数字 int z[40] , num = 0; do{ z[num++] = x%P; //用数组容器进行装填余数,倒着读就行 x /= P; //不断获得除数给后面的进行运算 }while(x!=0); //倒着读 for(int i=num-1;i>=0;i--) printf("%d",z[i]); return 0; }
如果可以,可以尝试理解这个模板。
int z[31];
//十进制的D转化为Q进制的数据
int D_Q(int D,int Q){
int num = 0;
do{
z[num++] = D%Q;
D/=Q;
}while(D!=0);
return num;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)