求出整数的逆序

输入一个整数,输出倒置,例如输入123456,输出654321

1 递归,打印出来

2 非递归,返回结果

3 非递归,推荐使用

1 递归,打印出来

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include<stdio.h>
 4 #include<stdlib.h>
 5 
 6 void dao(int num)
 7 {
 8     if (num < 10)
 9     {
10         printf("%d", num);
11     }
12     else
13     {
14         printf("%d", num % 10);
15         return dao(num / 10);
16     }
17 }
18 
19 main()
20 {
21     int num;
22 
23     scanf("%d", &num);
24 
25     dao(num);
26     
27     system("pause");
28 }

2 非递归,返回结果

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include<stdio.h>
 4 #include<stdlib.h>
 5 
 6 int get10n(int n)//传入n,输出10的n次方
 7 {
 8     if (n == 0)//递归,最终返回一个值,因此return一个值
 9     {
10         return 1;
11     }
12     else
13     {
14         return get10n(n - 1) * 10;
15     }
16 }
17 
18 int dao(int num, int wei)//传入num,位数,求出倒置
19 {
20     int n;
21     int last = 0;
22 
23     while (num)
24     {
25         n = num % 10;//最后一位
26         num /= 10;//去掉最后一位
27         last += n*get10n(wei - 1);//乘以10的n次方,wei需要减去1
28         wei--;
29     }
30 
31     return last;
32 }
33 
34 int getwei(int num)//求出位数
35 {
36     if (num < 10)//递归,最终返回一个值,因此return一个值
37     {
38         return 1;
39     }
40     else
41     {
42         return getwei(num / 10) + 1;
43     }
44 }
45 
46 main()
47 {
48     int num;
49     int wei;
50     int last;
51 
52     scanf("%d", &num);
53 
54     wei = getwei(num);//获得位数
55 
56     last = dao(num, wei);//倒置结果
57 
58     printf("last=%d", last);
59 
60     system("pause");
61 }

3 非递归,推荐使用

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include<stdio.h>
 4 #include<stdlib.h>
 5 
 6 main()
 7 {
 8     int num = 123345;
 9     int res = 0;
10 
11     while (num)
12     {
13         res *= 10;
14         res += num % 10;
15         num /= 10;
16     }
17 
18     printf("res=%d
", res);
19 
20     system("pause");
21 }
原文地址:https://www.cnblogs.com/denggelin/p/5479369.html