首页 > 编程语言 > 详细

转成p进制算法C语言

时间:2019-09-16 09:32:18      阅读:163      评论:0      收藏:0      [点我收藏+]

今天打比赛的时候竟然下一没有想起来,

实际上是非常简单的。

举例说明:

$64 = 2 \times 3^3 + 1 \times 3^2 + 3^0$

根据秦九韶算法每次提出3,即 $3(2 \times 3^2 + 1 \times 3^1) + 1 = 64$,

可见得到最低位系数只需要对3取余,

将n除以3,重复上述步骤。

#include<stdio.h>

void shift(int n, int p)   //将n转化成p进制
{
    while(n)
    {
        printf("%d ", n%p);   //从低到高输出
        n = n / p;
    }
}

void shift2(int n, int p)  //强行写成递归,hh
{
    if(n == 0)  return;
    printf("%d ", n%p);
    shift2(n/p, p);
}

int main()
{
    shift(64, 3);  //1 0 1 2
}

 

转成p进制算法C语言

原文:https://www.cnblogs.com/lfri/p/11525608.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!