算法大赛试题集合 联系客服

发布时间 : 星期三 文章算法大赛试题集合更新完毕开始阅读8f3162a7b0717fd5360cdcd3

2011全国软件设计大赛题真题,编程题:

1.在实际的开发工作中,对于字符串的处理是最常见的编程任务,本题目是要求程序对用户输入的字符串进行处理,具体规则如下: 1.每个单词的首字母变为大写。

2.把数字与字母之间用下划线隔开,使结构清晰。 3.多个空格变为一个空格。

例如:输入:you and me what cpp2005pragram 则输出:You And Me What Cpp_2005_Program 输入:this is a 99cat 则输出:This Is A 99_Cat*/

2* A,B,C,D,E,F,G,H,I,J,共10名学生有可能参加计算机竞赛,也可能不参加,因为某种原因他们受到下列条件的约束: 1. 如果A参加,B也参加;

2. 如果C不参加,D也不参加; 3. A和C中只能有一个人参加; 4. B和D中有且仅有一个人参加; 5. D、E、F、G、H 中至少有2人参加; 6. C和G或者都参加,或者都不参加;

7. C、E、G、I中至多只能2人参加 8. 如果E参加,那么F和G也都参加。 9. 如果F参加,G、H就不能参加 10. 如果I、J都不参加,H必须参加

请编程根据这些条件判断10名同学参赛者名单 比如LC D G J 代码在Num2里

3/*要求找出具有下列性质的数的个数(包含输入的自然数n): 先输入一个自然数n(n<=500),然后对此自然数按照如下方法进行处理: ①. 不作任何处理;

②. 在它的左边加上一个自然数,但该自然数不能超过原数首位数字的一半; ③. 加上数后,继续按此规则进行处理,直到不能再加自然数为止. 样例: 输入: 6

满足条件的数为 6 16 26 126 36 136 输出: 6 */

private function fenjie(cnum: int, count: int , str: String): void {

if(cnum == 0) return;

if(count == max) trace(str);

for (var i:int = cnum; i > 0; i--) {

if(count + i > max) continue;

fenjie(i, count +i, str + i); } }

/*巧排数字。将1、2、...、20这20个数排成一排,使得相邻的两个数之 和为一个素数,且首尾两数字之和也为一个素数。编程打印出所有的排法。*/

有一楼房的楼梯级数很奇特,一步跨二级多一级,一步跨三级多二级,如果分用四、五、六、七去除级数分别余三、三、五、五。问这楼房共有多少级阶梯?(已知不超过400级)。

狼追兔子,兔子躲进了10个环形分布的洞的某一个中。狼在第1个洞中没有找到兔子,就间隔1个洞,到第3个洞中去找,也没找到兔子,就间隔2个洞,到第6个洞中去找。以后狼每次多隔1个洞去找兔子,??。这样狼一直找不到兔子。请问兔子可能躲在哪个洞中?

2、 一位数学家和一些游客共81人不幸落入强盗手中,强盗把俘虏排成一队,宣布每天处理所有第2的N次方个俘虏(N>=0),而只放走剩下的最后一个。由于数学家身怀重任,不得不选择了一个恰当的位置而最终被放走。请问他归初排在第几个位置。

3、 有一堆礼物,工作人员无论是分成二个一份,还是三个、四个、五个、六个一份,总是多一个。请问这堆礼物至少多少个? public class Test9 {

public static void main(String[] args) { //求2、3、4、5、6的最小公倍数 int i =7;

while(true){

if(i%2==1&&i%3==1&&i%4==1&&i%5==1&&i%6==1){ System.out.println(i); break; } i=i+6; } } }

4、 一付扑克中拿出所有的黑桃A??K按顺序排好。第一次翻出第一张牌——A,放在一边,再拿出第二张放到牌的最下面。以后每次都翻出一张牌,再把一张牌放到最后,问第八次翻出的牌是哪一张?

public class Test10 {

public static void main(String[] args) {

String a[]={\ List list = new LinkedList(); int j;

for (int i = 0; i < a.length; i++) { list.add(a[i]); }

for ( j = 0; j < 7; j++) {

list.remove(0);

list.add(list.remove(0)); }

System.out.println(list.get(0)); } }

package test;

/*2、 一位数学家和一些游客共81人不幸落入强盗手中,强盗把俘虏排成一队,宣布每天处理所有第2的N次方个俘虏(N>=0),而只放走剩下的最后一个。由于数学家身怀重任, 不得不选择了一个恰当的位置而最终被放走。请问他归初排在第几个位置。*/ public class Test8 {

/**

* @param args */

public static void main(String[] args) { // TODO Auto-generated method stub int a[] = new int[81];

for (int i = 0; i < a.length; i++) { a[i] = i + 1; }

// int b[] = a; int j = 0;

int count = 0; while (count !=1) { count=0;

for (int i = 0; i <= 6; i++) { a[(int) (Math.pow(2, i))-1] = 0;

// System.out.println((int)Math.pow(2, i));

}

for (int i = 0; i < a.length; i++) { j=i; if (a[i] == 0) {

for (int k = j + 1; k < a.length; k++) { if (a[k] != 0) { a[i] = a[k]; a[k]=0;

// j = k;

// System.out.println(\break; } } } }

for (int i = 0; i < a.length; i++) { if(a[i]!=0) count++; } }

for (int i = 0; i < a.length; i++) { if (a[i] != 0)

System.out.println(a[i]); } } }