如何不用迴圈列印數字1到n

2021-06-21 16:32:19 字數 618 閱讀 2972

題目:如何列印數字1-到n,限制條件是不用迴圈實現(即實現中不用for,while等迴圈語句)

首先你想到的是用遞迴函式實現:

void print2n(int n)

printf("%d\n", n);

}

寫遞迴函式的優點是**簡潔,但思路一定要清晰。就是這個看似很簡單的小問題筆者面試的數十人中還是有好多人回答不上來,哪怕最後明確告訴他就用遞迴來實現。寫遞迴函式第一要點是遞迴的退出條件,退出處理不當的話很容易導致程式出錯,最壞的情況是死迴圈。死迴圈會有什麼結果?這個。。。你懂得。針對本題面試官可能還有不同的問題在後面等著你,比如,如何逆序列印n到1?

遞迴是程式設計中必須要掌握的一環,本部落格後面將會有詳細**。

如果面試官比較挑剔,繼續追問:如果也不用遞迴呢?

如果你熟悉麵線物件,知道引用計數的概念,那就難不倒你了:

#include using namespace std;

class a {

public:

a() {

cout <

雙重while迴圈實現列印數字11 99

問題 為什麼下面的while雙重迴圈是這樣的結果?x 1 y 1while true while y 9 x x 1 y y 1 print x 10 y 執行結果 分析 這是程式執行流程 x 2,y 2,x 10 y 22 x 3,y 3,x 10 y 33 x 9,y 9 y之前為8,符合內層迴...

順時針從外到內列印數字矩陣

列印數字矩陣到標準輸出。按順時針方向,從外到內列印矩陣。起點是矩陣的左上角。class matrix def initialize width n 0 width width 矩陣的寬度 建立二維陣列 square array.new width do array.new width,0 enden...

三種方法實現如何不用迴圈實現1 n?

如何不用迴圈實現1 n?這道題目是一道面試題,至於為什麼要這樣問,用迴圈解決1加到n豈不是更高效,也是為了鍛鍊一下思維,看你能想到幾種 第一種 遞迴實現 includeusing namespace std int add int x return x add x 1 int main 第二種 模板...