选做了P1008,P1035,P1424

P1008 三连击

(java)洛谷--试练场--1-3循环



public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			for(int i1 = 1;i1<=9;i1++){
				for(int i2 = 1;i2<=9;i2++){
					for(int i3 = 1;i3<=9;i3++){
						for(int i4 = 1;i4<=9;i4++){
							for(int i5 = 1;i5<=9;i5++){
								for(int i6 = 1;i6<=9;i6++){
									for(int i7 = 1;i7<=9;i7++){
										for(int i8 = 1;i8<=9;i8++){
											for(int i9 = 1;i9<=9;i9++){
												int flag = Pan(i1,i2,i3,i4,i5,i6,i7,i8,i9);
												if(flag == 1){
													int a = 100*i1+10*i2+i3;
													int b = 100*i4+10*i5+i6;
													int c = 100*i7+10*i8+i9;
													if(2*a==b&&3*a==c){
														System.out.println(a+" "+b+" "+c);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
	}

	private static int Pan(int i1, int i2, int i3, int i4, int i5, int i6,
			int i7, int i8, int i9) {
		// TODO Auto-generated method stub
		if(i1!=i2&&i1!=i3&&i1!=i4&&i1!=i5&&i1!=i6&&i1!=i7&&i1!=i8&&i1!=i9){
			if(i2!=i3&&i2!=i4&&i2!=i5&&i2!=i6&&i2!=i7&&i2!=i8&&i2!=i9){
				if(i3!=i4&&i3!=i5&&i3!=i6&&i3!=i7&&i3!=i8&&i3!=i9){
					if(i4!=i5&&i4!=i6&&i4!=i7&&i4!=i8&&i4!=i9){
						if(i5!=i6&&i5!=i7&&i5!=i8&&i5!=i9){
							if(i6!=i7&&i6!=i8&&i6!=i9){
								if(i7!=i8&&i7!=i9){
									if(i8!=i9){
										return 1;
									}
								}
							}
						}
					}
				}
			}
		}
		return 0;
	}

}

P1035 级数求和链接

(java)洛谷--试练场--1-3循环

import java.util.Scanner;


public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		int k = scanner.nextInt();
		double sum = 0;
		if(k>=1&&k<=15){
			for(int i=1;i<=1835422;i++){
				sum = sum + 1.0/i;
				if(sum>k){
					System.out.println(i);
					return;
				}
			}
		}
	}

}

这个题确定最大的i的范围,直接用了1000000来检测,输出发现到1835421的时候就可以大于15了,所以就可以确定更精确的范围。

P1424 小鱼的航程(改进版)

(java)洛谷--试练场--1-3循环

import java.util.Scanner;


public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		int b = scanner.nextInt();
		int end = scanner.nextInt();
		int sum = 0;
		for(int i=b;i<b+end;i++){
			int c = i%7;
			if(c==0||c==6){
				sum = sum;
			}else{
				sum = sum+250;
			}
		}
		System.out.println(sum);
	}

}

对7进行取余,余数即代表星期几
但是这里做的第一遍的时候遇到一个坑,第一个if判断语句的不能直接写为if(i%7 == 0||i%6==0),这样会把6的倍数也去除,因此应该用一个中间变量c来判断~

相关文章:

  • 2022-12-23
  • 2021-07-02
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2021-08-09
猜你喜欢
  • 2021-12-21
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案