자바 고전 연습 문제 (2)

4506 단어 자바연습 문제
6. 한 줄 의 문 자 를 입력 하여 각각 영문 자모, 빈 칸, 숫자 와 다른 문자 의 개 수 를 통계 한다.
프로그램 분석: 콘 솔 에서 한 줄 의 입력 을 가 져 온 다음 에 String 문자열 의 내용 을 판단 하고 모든 문자 의 개 수 를 집계 하여 리 턴 '' 을 만 날 때 까지 합 니 다.
import java.util.Scanner;

public class Question6 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String str = sc.nextLine();

		char[] dst = new char[str.length()];

		str.getChars(0, str.length(), dst, 0);

		int letterCount = 0; //         
		int whiteSpaceCount = 0; //         
		int numberCount = 0; //         
		int otherCount = 0; //           

		for (char c : dst) {
			if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
				letterCount++;
			} else if (c == ' ') {
				whiteSpaceCount++;
			} else if (c >= '0' && c <= '9') {
				numberCount++;
			} else {
				otherCount++;
			}
		}

		System.out.println("     :" + letterCount);
		System.out.println("     :" + whiteSpaceCount);
		System.out.println("     :" + numberCount);
		System.out.println("       :" + otherCount);
	}

}

7. s = a + aa + aa + aa + aa... aa 의 값 을 구 합 니 다. 그 중에서 a 는 숫자 입 니 다.예 를 들 어 2 + 22 + 2222 + 22222 (이때 모두 5 개의 수 를 더 함), a 의 값 과 몇 개의 수 를 더 하면 모두 키보드 로 입력 한다.
프로그램 분석: 프로그램의 관건 은 모든 aa.. aa 의 값 크기 를 계산 하 는 것 입 니 다. 모든 값 의 크기 는 모든 비트 의 수치 와 같 습 니 다.
import java.util.Scanner;

public class Question7 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.println("   a  :");

		long a = sc.nextLong();

		System.out.println("         :");

		long b = sc.nextLong();

		long s = 0;

		for (long i = 1; i <= b; i++) {
			long temp = a;
			long w = 1; // w   
			for (long j = i; j > 1; j--) {
				w = w * 10;
				temp = temp + (a * w);
			}

			s = s + temp; // temp    “+”        
		}

		System.out.print("s=");

		for (long i = 1; i <= b; i++) {
			System.out.print(a);
			for (long j = i; j > 1; j--) {
				System.out.print(a);
			}

			if (i != b) {
				System.out.print("+");
			}
		}

		System.out.println("=" + s);
	}

}

8. 하나의 수가 만약 그것 의 인자 의 합 과 같다 면 이 수 를 '완수' 라 고 부른다.예 를 들 어 6 = 1 + 2 + 3, 프로 그래 밍 은 1000 이내 의 모든 완 수 를 찾아낸다.
프로그램 분석: n 의 모든 인자 (즉 n 에 의 해 정 제 될 수 있 는 수) 를 찾 아 모든 인자 의 합 을 n 과 비교 하면 된다.
public class Question8 {

	public static void main(String[] args) {

		for (int i = 1; i < 1000; i++) {
			if (isPerfectNumber(i)) {
				System.out.println(i);
			}
		}

	}
	
	/**
	 *         “  ”
	 * @param n
	 * @return   true,   n “  ”;  false,   n  “  ”
	 */
	private static boolean isPerfectNumber(int n) {
		int sum = 0; //   n        

		for (int i = 1; i < n; i++) {
			if (n % i == 0) {
				sum += i;
			}
		}

		if (sum == n) {
			return true;
		} else {
			return false;
		}
	}
}

9. 한 골 은 100 미터 높이 에서 자 유 롭 게 떨 어 지고 매번 착지 한 후에 원래 높이 의 절반 으로 되돌아간다.다시 떨 어 지면 n 번 째 착지 할 때 모두 몇 미 터 를 거 쳤 습 니까?n 차 반등 은 얼마나 높 습 니까?
프로그램 분석: 착지 탄 기 를 하나의 라운드 로 보고 n 번 째 착지 탄 기 를 순환 적 으로 계산 할 때 탄 기 부분의 거 리 를 줄 이면 지나 가 는 거 리 를 얻 을 수 있다.
import java.util.Scanner;

public class Question9 {

	public static void main(String[] args) {

		System.out.println("       :");

		Scanner sc = new Scanner(System.in);

		int m = sc.nextInt();
		
		double height = 100.0;
		double sum = 0.0;
		double reHeight = 0.0;

		for (int i = 1; i <= m; i++) {
			reHeight = height / 2;
			sum = sum + height + reHeight;
			height = reHeight;

			if (i == m) {
				sum -= height;
			}

		}

		System.out.println(" " + m + "         :" + sum);
		System.out.println(" " + m + "         ::" + reHeight);

	}

}

10. 1, 2, 3, 4 개의 숫자 가 있 는데 서로 다 르 고 중복 되 지 않 는 세 자릿수 를 구성 할 수 있 습 니까?다 얼마예요?
프로그램 분석: 3 층 순환 으로 백 위 와 10 위 가 같 지 않다 고 판단 하고 백 위 와 개 위 는 같 지 않다. 10 위 와 개 위 는 같 지 않다. 즉, 조건 을 만족 시 키 는 것 이다.
public class Question10 {

	public static void main(String[] args) {
		int count = 0;
		for (int i = 1; i <= 4; i++) {
			for (int j = 1; j <= 4; j++) {
				for (int k = 1; k <= 4; k++) {
					if (i != j && i != k && j != k) {
						System.out.println(i + "" + j + "" + k);
						count++;
					}
				}
			}
		}

		System.out.println("  " + count + "  ");
	}
}

좋은 웹페이지 즐겨찾기