我是靠谱客的博主 忧伤黑米,最近开发中收集的这篇文章主要介绍把一个整数颠倒过来,123变成321,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类似 LeetCode 7.Reverse Integer

//main.c
#include <stdio.h>
//①for语句计算有多少位
int length_for(int num){
int len = 0;
for (int i = num; i != 0; i /= 10)
len++;
return len;
}
//②goto求取位数
int length_go(int num){
int len = 0;
tag:
if (num){
len++;
num /= 10;
goto tag;
}
return len;
}
//③递归求取位数
int length_recur(int num){
num = num>0?num:-num;
if (num < 10)
return 1;
else
return 1 + length_recur(num / 10);
}
//计算10的n次方
int power_of_10(int n) {
int ret = 1;
for (int i = 0; i != n; i++)
ret *= 10;
return ret;
}
//颠倒 123456789
-->
987654321
int reverse_v1(int num, int len){
int res = 0;
for (int i = 0; i != len; i++){
res += (num % 10) * power_of_10(len - i - 1);
num /= 10;
}
return res;
}
//直接颠倒
int reverse_v2(int num){
int res = 0;
while (num){
res = res*10 + num%10;
num /= 10;
}
return res;
}
void test(int num){
int len = length_for(num);
printf("######## test num %d ########ntlengthn", num);
printf("for:t%dngo:t%dnrecursion:%dn", length_for(num), length_go(num), length_recur(num));
printf("######## reverse result ######## n");
printf("reverse_v1: %dnreverse_v2: %dnn", reverse_v1(num, len), reverse_v2(num));
}
int main(){
test(123456789);
test(-123456789);
test(1234567890);
test(-1234567890);
return 0;
}
VK_007@ubuntu: ~ $ gcc main.c -std=c99 -o main
VK_007@ubuntu: ~ $ ./main
######## test num 123456789 ########
length
for:
9
go:
9
recursion:9
######## reverse result ########
reverse_v1: 987654321
reverse_v2: 987654321
######## test num -123456789 ########
length
for:
9
go:
9
recursion:9
######## reverse result ########
reverse_v1: -987654321
reverse_v2: -987654321
######## test num 1234567890 ########
length
for:
10
go:
10
recursion:10
######## reverse result ########
reverse_v1: 987654321
reverse_v2: 987654321
######## test num -1234567890 ########
length
for:
10
go:
10
recursion:10
######## reverse result ########
reverse_v1: -987654321
reverse_v2: -987654321

 

 

 

 

最后

以上就是忧伤黑米为你收集整理的把一个整数颠倒过来,123变成321的全部内容,希望文章能够帮你解决把一个整数颠倒过来,123变成321所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部