Re: [請益] 沒有想像中簡單的小問題

看板Programming作者 ( )時間14年前 (2011/09/29 20:50), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串29/34 (看更多)
※ 引述《tenfaces (我愛三筒小叮噹~~)》之銘言: : 這次某個公營考試的程式題目 : 列印出如下格式: : 3 : 345 : 34567 : 345 : 3 echo ' 3\n 345\n34567\n 345\n 3\n' | lpr 題目好像有說要"列印"? xD : 當初一看到題目 覺得很簡單啊 就跳下去寫了 後來發現~ : 唔 要左拼拼 右湊湊 才能搞定 挺多狀況的 : 上來討解答很白目 我是自己寫出來後 才想請問各位高手 : 有沒有比較直覺的想法還有解法 : 或是迴圈數更少的做作 看有些比較有經驗的版本的解答 應該可以加強下次寫此類題目的邏輯推演 : 小弟先將自己的版本放上來 謝謝各位分享 :) : //_____________程式開始 ________________ : #include<stdio.h> : void main(void) { : int i,j; : int step1=0; // 這二個步進值 分別控制 從三開始印到何時停止 : int step2=1; // : for (i=1;i<=5;i++) { // 外層迴圈跑五次 列印五行 : if(i<=3) { // 先寫上半段 到 34567 這個部份 : for(j=1;j<=5;j++) { // 此迴圈是控制 每一行的五個數字 : if(abs(j-3)<=step1) : printf("%d\t",j+i-1); : else printf("%s","\t"); : } : step1++; } : if(i>3) { // 再寫下半段 : for(j=1;j<=5;j++) { : if(abs(j-3)<=step2) : printf("%d\t",j-i+5); : else printf("%s","\t"); : } : step2--; } : printf("\n"); : } } : // 程式結束 ___________________________________ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.5.40 ※ 編輯: lucky17 來自: 220.139.205.10 (10/05 23:57)
文章代碼(AID): #1EX6cEY1 (Programming)
討論串 (同標題文章)
文章代碼(AID): #1EX6cEY1 (Programming)