ISBN碼 0 1 3 1 6 2 9 5 9 10(X)
第一次累加和 0 1 4 5 11 13 22 27 36 46
第二次累加和 0 1 5 10 21 34 56 83 119 165
經由計算可得其識別碼為165,乃是11之倍數,故此為一合法之ISBN碼,因此應該要輸出YES於螢幕上。
試題一解答
試題目錄
回到首頁
學習程式設計,語法固然重要,也是許多程式設計課程的教學重點。但是看的懂 C ,不見得會用 C 來解決問題(Problem solving),所以學會解題是重點中的重點。 學習C語言的不二法門,就是從寫程式解題開始,這裡的考古題由淺而深,循序漸進,對初學者甚有助益。 ACM 協會針對每年程式設計比賽的練習需求,建立一個線上的題庫與評分系統,希望藉由題庫練習的機會,在此心得分享,讓有心學習程式解題的人,能有個溝通成長的橋樑。
ISBN碼 0 1 3 1 6 2 9 5 9 10(X)
第一次累加和 0 1 4 5 11 13 22 27 36 46
第二次累加和 0 1 5 10 21 34 56 83 119 165
seed(x+1) = [seed(x) + STEP] % MOD
3 5
15 20
63923 99999
3 5 Good Choice
15 20 Bad Choice
63923 99999 Good Choice
for (i=0;i<mod-1;i++)
{
seed = (seed+step)%mod;
sum += (double)seed;
}
if (((double)mod-1)*mod/2.0!=sum)
isBad = 1;
typedef struct
{
double x, y;
} Point;
typedef struct
{
Point center;
double r;
} Circle;
1 0 2 -1 0 2
1 0 1 -1 0 1
1 0 0.5 -1 0 1
The cross points are (0.00,1.73) and (0.00,-1.73).
The cross points is (0.00,0.00).
No cross points.
printf("本月壽星學生為\n");
happy_birthday(student, 5);
printf("全班平均成績最佳者為 %s\n", student[max_grade(student)].name);
void happy_birthday(struct data st[], int month)
{
int i;
for (i=0;i<8;i++)
if (st[i].birthday.mm == month)
printf("%s\n", st[i].name);
}
int max_grade(struct data st[])
{
int i, index=0;
float temp, max_avg=(st[0].eng+st[0].chi+st[0].math)/3.0;
for (i=1;i<8;i++)
{
temp=(st[i].eng+st[i].chi+st[i].math)/3.0;
if (max_avg < temp)
{
max_avg=temp;
index=i;
}
}
return index;
}
printf("英文成績最佳的學生為 %s\n", student[max_eng(student)].name);
printf("A 班數學平均成績為 %.2f\n", avg_math(student, 'A'));
printf("B 班數學平均成績為 %.2f\n", avg_math(student, 'B'));
int max_eng(struct data st[])
{
int i, index=0, max=st[0].eng;
for (i=1;i<8;i++)
if (max < st[i].eng)
{
max=st[i].eng;
index=i;
}
return index;
}
float avg_math(struct data st[], char ch)
{
float sum=0;
int i, total=0;
for (i=0;i<8;i++)
if (st[i].classNo==ch)
{
sum += st[i].math;
total++;
}
return sum/total;
}
void calcRose(int x1, int y1, int x2, int y2, int *rnum, int *ynum)
{
int i, j, xi, yi;
xi = x1%10||x1==0?x1/10+1:x1/10;
yi = y1%10||y1==0?y1/10+1:y1/10;
for (i=xi;i<=x2/10;i++)
for (j=yi;j<=y2/10;j++)
if (i%2)
if (j%2)
(*ynum)++;
else
(*rnum)++;
else
if (j%2)
(*rnum)++;
else
(*ynum)++;
}
struct day
{
int yy, mm, dd; /* 年、月、日 */
};
struct data
{
char name[20]; /* 姓名 */
struct day birthday; /* 生日 */
int chi, math, eng; /* 國文、數學 與 英文成績 */
};
struct data student[8] = {{"Marry Hu", {77, 2, 3}, 89, 90, 79},
{"Tom Chen", {78, 12, 13}, 79, 69, 88},
{"Billy Wu", {77, 1, 30}, 81, 54, 66},
{"John Hsu", {77, 7, 22}, 69, 49, 70},
{"Tim Huang", {77, 3, 8}, 90, 62, 83},
{"Marry Chen", {78, 5, 27}, 78, 93, 91},
{"Tomas Chu", {77, 5, 18}, 80, 50, 68},
{"Ann Wang", {77, 9, 21}, 66, 79, 78}};
struct day
{
int yy, mm, dd; /* 年、月、日 */
};
struct data
{
char name[20]; /* 姓名 */
char classNo; /* 班別 */
struct day birthday; /* 生日 */
int math, eng; /* 數學 與 英文成績 */
};
struct data student[8] = {{"Marry Hu", 'A', {77, 2, 3}, 89, 90},
{"Tom Chen", 'B', {78, 12, 13}, 79, 69},
{"Billy Wu", 'A', {77, 1, 30}, 81, 54},
{"John Hsu", 'A', {77, 7, 22}, 69, 49},
{"Tim Huang", 'B', {77, 3, 8}, 90, 62},
{"Marry Chen", 'B', {78, 6, 27}, 78, 93},
{"Tomas Chu", 'A', {77, 6, 18}, 80, 50},
{"Ann Wang", 'A', {77, 9, 21}, 66, 79}};