DAY 10 逆序数

83 阅读1分钟

题目描述:

  • 输入一个整数,将这个整数以字符串的形式逆序输出
  • 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
  • 数据范围:0≤n≤2^30−1
  • 输入描述:输入一个int整数
  • 输出描述:将这个整数以字符串的形式逆序输出

示例:

输入:1516000
输出:0006151

输入:0
输出:0
复制代码

思路1:

根据输出为字符串的要求,首先将整型数字转换为字符串,并将字符串放入数组中,算出数组长度,逆序将数组以字符串输出。

具体实现:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    char str[30];
    int num;
    int i=0,len;
    scanf("%d",&num);
    sprintf(str,"%d",num);
    len=strlen(str);
    for(int i=len-1;i>=0;i--)
        printf("%c",str[i]);
    system("pause");
    return 0;
}

思路2:

输入数字 % 10取得当前个位数并打印,然后nums / 10去掉当前个位数,循环直到输出所有数字,刚好得到逆序数。

具体实现:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main () {
    int nums;
    cin >> nums;
    while(nums) {
        cout << nums % 10;
        nums /= 10;
    }
    return 0;
}