高普考題庫
96 年 096年公務人員高等考試三級考試暨普通考試

程式設計概要

本卷皆為申論題,點「看答案與解析」查看擬答。

申論 1試寫一函式(function):int SumOfDigits(int n)。若n 為正整數,則該函式傳回n以十進位表示法的所有位數中數字的總和。(30 分)例如:若int n = 1236;int k=SumOfDigits(n);則k 的值為1+2+3+6 也就是等於12。若int n = 58;int k=SumOfDigits(n);則k 的值為5+8 也就是等於13。
申論 2請利用第一題的SumOfDigits(n) 函式,撰寫一程式解決以下問題:輸入兩個正整數A 和B,已知A 不大於B,找出所有大於等於A 且小於等於B 的正整數n 中,可以被SumOfDigits(n) 傳回值整除者。例如:若n=100;int k=SumOfDigits(n);則k 的值為1,k 可以整除n。請撰寫一程式將所有符合上述條件的正整數一一在螢幕上印出,一行恰好印一個。(15 分)
申論 3撰寫一程式解決以下問題:(25 分)輸入:三個正整數n、m 及d;已知n > 2*d 且m > 2*d。輸出:在螢幕印出如下由星號(*)組成之n 行m 列每條邊厚度均為d 之空心長方形圖案;所謂長方形某一條邊的厚度是指該邊的星號線條數。例如:若n=10 , m=8 , d=2 則印出:********************** **** **** **** **********************
申論 4若把某數列的i 個值紀錄為f(i),已知f(1)=1 , f(2)=2 , f(3)=3 , f(4)=5;且若i>4 則f(i) = 3 * f(i-1) + 5 * f(i-3)。撰寫一函式(function):int fun(int n)。若輸入之n 為正整數,則輸出f(n)。並用Big-O 符號分析執行該程式的時間及空間複雜度。(30 分)