减小字体
增大字体
四.完善程序(前4空,每空2分,后5空,每空4分,共28分) 1.判断质数 题目描述: 给出一个正整数,判断这个数是否是质数。 输入: 一个正整数n(1 ≤ n ≤ 10000)。 输出: 如果n是质数,输出”YES”;否则,输出”NO”。 输入样例: 10 输出样例: NO 程序: #include <stdio.h> int main() { int ① ; scanf("%d", &n); if (n == 2) puts( ② ); else if ( ③ || n % 2 == 0) puts("NO"); else { i = 3; while (i * i <= n) { if ( ④ ) { puts("NO"); return 0; } i = i + 2; } puts("YES"); } return 0; } 2.木材加工 题目描述: 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小 段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段 木头的最大长度。 木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度 也是正整数。 输入: 第一行是两个正整数N和K(1 ≤ N ≤ 10000,1 ≤ K ≤ 10000),N是原木的数目, K是需要得到的小段的数目。 接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。 输出: 输出能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出”0”。 输入样例: 3 7 232 124 456 输出样例: 114 程序: #include <stdio.h> int n, k, len[10000]; int isok(int t) { int num = 0, i; for (i = 0; i < n; i++) { if (num >= k) break; num = ① ; } if ( ② ) return 1; else return 0; } int main() { int i, left, right, mid; scanf("%d%d", &n, &k); right = 0; for (i = 0; i < n; i++) { scanf("%d", &(len)); if (right < len) right = len; } right++; ③ ; while ( ④ < right) { mid = (left + right) / 2; if ( ⑤ ) right = mid; else left = mid; } printf ("%d\n", left); return 0; }
上一页 [1] [2] [3] [4]
|