那谁的技术博客

感兴趣领域:高性能服务器编程,存储,算法,Linux内核
随笔 - 210, 文章 - 0, 评论 - 1183, 引用 - 0
数据加载中……

整数按照任意基数展开的算法

RT.

当展开数比基数小的时候返回.

 1#include <stdio.h>
 2
 3// 得到整数u的以基数n的展开式
 4void f(unsigned int u, unsigned int n)
 5{
 6    if (u < n)
 7    {
 8        return;
 9    }

10    unsigned int i, k;
11
12    printf("%d = ", u);
13    k = 0;
14    while (u)
15    {
16        i = u % n;
17        if (i)
18        {
19            if (!k)
20            {
21                printf("%d*%d^%d", i, n, k);
22            }

23            else
24            {
25                printf(" + %d*%d^%d", i, n, k);
26            }

27        }

28        
29        u = u / n;
30        k += 1;
31    }

32}

33
34int main()
35{
36    f(1658);
37    return 0;
38}

39

posted on 2006-04-15 19:49 那谁 阅读(753) 评论(0)  编辑 收藏 引用 所属分类: 算法与数据结构


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理