Re: [問題] n項目乘法表

看板Programming作者 (keeperkai)時間14年前 (2010/04/23 15:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《makiyolove (暴力熊)》之銘言: : ※ [本文轉錄自 C_and_CPP 看板] : 作者: makiyolove (暴力熊) 看板: C_and_CPP : 標題: [問題] n項目乘法表 : 時間: Fri Apr 23 12:37:02 2010 : 最近在跟學弟討論程式練習的題目, : 意外的想到一題,是由九九乘法表的延伸, : 標準的九九乘法表有 n=2個項目,也就是利用i與j的迴圈印出, : 那麼,我們想出來的問題就是,當使用者輸入n=3時, : 則會輸出 1*1*1~9*9*9的答案,n=4時輸出1*1*1*1~9*9*9*9, : 這樣到底應該怎樣寫這個程式... : 問了幾個程式能力好的同學似乎都摸不著頭緒.. : 這不是作業,只是額外想到的問題, : 不知道有沒有辦法利用程式做出來。 : 懇請版上先進指教。 可以利用一個int陣列i[]來存每層迴圈的變數 然後創造一個p(int *i, int k ,int N)的function p= 印出結果, k=N+1的時候 設定第k個回圈的變數,並且再往下呼叫 我是直接改N來當作輸入,想要改用scanner取得也可以 #include "stdafx.h" #include "iostream.h" #include "stdio.h" void p(int *i,int k,int N){ if (k==N+1){ int ans=1; for (int j=1;j<N;j++){ ans=ans*i[j]; printf("%d*",i[j]); } ans=ans*i[N]; printf("%d=%d\n",i[N],ans); } else while (i[k]<9){ i[k]=i[k]+1; p(i,k+1,N); } i[k]=0; } int main(int argc, char* argv[]) { int N=10; int *i=new int[N+1]; for (int j=0;j<=N;j++){ i[j]=0; } p(i,1,N); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.222.23.95 ※ 編輯: keeperkai 來自: 203.222.23.95 (04/23 16:01) ※ 編輯: keeperkai 來自: 203.222.23.95 (04/23 16:03)
文章代碼(AID): #1BqL1cSD (Programming)
討論串 (同標題文章)
文章代碼(AID): #1BqL1cSD (Programming)