整數按照任意基數展開的算法
RT.
當展開數比基數小的時候返回.
當展開數比基數小的時候返回.
?1
#include?<stdio.h>
?2
?3
//?得到整數u的以基數n的展開式
?4
void?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
34
int?main()
35

{
36
????f(165,?8);
37
????return?0;
38
}
39

?2

?3

?4

?5



?6

?7



?8

?9

10

11

12

13

14

15



16

17

18



19

20



21

22

23

24



25

26

27

28

29

30

31

32

33

34

35



36

37

38

39

posted on 2006-04-15 19:49 那誰 閱讀(763) 評論(0) 編輯 收藏 引用 所屬分類: 算法與數據結構