鍍金池/ 問(wèn)答/C  C++  C#/ 輸入一串?dāng)?shù)字,反向輸出其結(jié)果。

輸入一串?dāng)?shù)字,反向輸出其結(jié)果。

#include    <stdio.h>
void output(int n)
{
    printf("%d", n%10);
    n/10 ? output(n/10) : 0;
 
}
 
int main(int argc, char* argv[]) 
{ 
    int n;
    scanf("%d", &n);
    output(n);
    return 0; 
} 
//對(duì)這個(gè)遞歸算法不是很理解
//大牛帶帶我 |^_^|
回答
編輯回答
情已空

c# 的 string有反轉(zhuǎn)的方法Reverse
代碼如下:
static void Main(string[] args)

    {
        Console.Write("輸入內(nèi)容:");
        string str = Console.ReadLine();
        Console.WriteLine();
        Console.Write("反轉(zhuǎn)結(jié)果:");
        var v = str.Reverse();
        foreach (var item in v)
        {
            Console.Write(item);
        }
        Console.ReadKey();
    }

圖片描述

2018年7月4日 10:28
編輯回答
陌上花

要點(diǎn)
** main 里 &n 被引用了

** % 取模運(yùn)算
1 % 10 = 1
1 % 10 = 2

然后自己自己再理解試試。

2018年1月18日 21:10
編輯回答
無(wú)標(biāo)題

這個(gè)遞歸程序在開(kāi)始時(shí)先打印了個(gè)位數(shù) `printf("%d",n%10)
會(huì)打印傳入數(shù)字n的個(gè)位數(shù),然后n/10 ? output(n/10) : (n = 0);`相對(duì)復(fù)雜一些,在C語(yǔ)言中稱(chēng)為三目運(yùn)算符,意思是n/10為真則執(zhí)行冒號(hào)前的表達(dá)式,否則執(zhí)行冒號(hào)后的表達(dá)式,在我看來(lái)冒號(hào)后的表達(dá)式是任何都不會(huì)影響程序執(zhí)行結(jié)果,因?yàn)槿绻麄魅雗為一位數(shù)字我再printf中已經(jīng)將其打印出來(lái)了。
實(shí)際遞歸寫(xiě)成如下形式可能更好理解:

void output(int n)
{
    //打印個(gè)位數(shù)字
    printf("%d", n%10);
    //如果還有多余位要打?。ㄊ唬?    if(n/10 > 0)
    {
        output(n/10);
    }
}
2017年5月10日 07:01
編輯回答
任她鬧

這方法就是:

除10,余數(shù)為最小位數(shù)字,打印余數(shù),商為除最小位之外的組成的數(shù)字,然后遞歸操作商,一直到商為0時(shí),則說(shuō)明已全部反轉(zhuǎn)完成;
2018年5月27日 00:20
編輯回答
笨小蛋
#include<iostream>
using namespace;
int main()
{int a,b,c;
cin>>a>>b>>c;
cout<<c<<b<<a;
return 0;
}
2017年11月7日 01:41