第六届蓝桥杯软件类省赛-JAVA部分题目

——————————————————————————————————————————————————————————————————————

 

输出n/m小数部分的循环节。补全代码。

	public static int f(int n, int m)
	{
		n = n % m;  
		Vector v = new Vector();
		
		for(;;)
		{
			v.add(n);
			n *= 10;
			n = n % m;
			if(n==0) return 0;
			if(v.indexOf(n)>=0)  _________________________________ ;  //填空
		}
	}

考虑不周,填的是

return v.size()

正确应该是

return v.size()-v.indexOf(n)

 

A、B、C均为三位数,由1-9中的九个数字组成,每个数字只出现一次。

现在已知 B=A*2; C=A*3;

求A的可能值是多少;从小到大依次列出。

public class Main {
	static int[] abc = new int[]{1,2,3,4,5,6,7,8,9};
	public static void main(String[] args) {
		quanpailie(abc, abc.length, 0);
	}
	public static void swap(int[] array,int numA,int numB){
		int temp;
		temp = array[numA];
		array[numA] = array[numB];
		array[numB] = temp;
	}
	static void quanpailie(int[] array,int n,int l){
		if(l >= n-1){
			int testA = array[0]*100+array[1]*10+array[2];
			int testB = array[3]*100+array[4]*10+array[5];
			int testC = array[6]*100+array[7]*10+array[8];
			if (testA*2==testB && testA*3 ==testC) {
				System.out.println(testA);
			}
		}else {
			for (int i = l; i < n; i++) {
				swap(array, l, i);
				quanpailie(array, n, l+1);
				swap(array, l, i);
			}
		}
	}
}

先全排列,然后判断是否符合。当时审题失误,错了。

输出是

192
219
273
327

 

 

 

牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

请填写该整数,不要填写任何多余的内容或说明文字。

 

public class Main{
	public static void main(String[] args) {
		int num = 0;
			for (int i1 = 0; i1 < 5; i1++) {
				for (int i2 = 0; i2 < 5; i2++) {
					for (int i3 = 0; i3 < 5; i3++) {
						for (int i4 = 0; i4 < 5; i4++) {
							for (int i5 = 0; i5 < 5; i5++) {
								for (int i6 = 0; i6 < 5; i6++) {
									for (int i7 = 0; i7 < 5; i7++) {
										for (int i8 = 0; i8 < 5; i8++) {
											for (int i9 = 0; i9 < 5; i9++) {
												for (int i10 = 0; i10 < 5; i10++) {
													for (int i11 = 0; i11< 5; i11++) {
														for (int i12 = 0; i12 < 5; i12++) {
															for (int i13 = 0; i13 < 5; i13++) {
																if (i1+i2+i3+i4+i5+i6+i7+i8+i9+i10+i11+i12+i13==13) {
																	num++;
																	System.out.println(num);
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
	}
}


每张牌可能的情况分别为出现0、1、2、3、4次,遍历。

暴力解决。。

最终结果是:3598180

你可能感兴趣的:(蓝桥杯比赛)