>Java >java지도 시간 >Java 초보자를 위한 10가지 작은 프로그램 예제

Java 초보자를 위한 10가지 작은 프로그램 예제

无忌哥哥
无忌哥哥원래의
2018-07-23 10:17:3514988검색

1. 컬러 TV를 2,856위안으로 샀습니다. 지폐 몇 장을 지불하셨나요?

public class Demo01 {

	public static void main(String[] args) {
		int play = 2856;
		System.out.println("100元面值:" + play / 100);
		System.out.println("50元面值:" + play / 10 % 10 / 5);
		System.out.println("20元面值:" + play / 10 % 10 % 5 / 2);
		System.out.println("10元面值:" + play / 10 % 10 % 5 % 2);
		System.out.println("5元面值:" + play % 10 / 5);
		System.out.println("1元面值:" + play % 10 % 5);
	}
}

2. 게임에는 총 20개의 레벨이 있으며, 두 캐릭터, 즉 영웅과 몬스터가 있습니다. 첫 번째 레벨에서 몬스터 경험치는 20점입니다. , 업그레이드에 필요한 경험치는 1200 포인트이며, 영웅 경험치는 0입니다. 영웅이 몬스터를 죽일 때마다 몬스터의 경험치는 레벨당 20%씩 증가합니다. (소수점 무시) ), 몬스터 경험치가 5% 증가하고 영웅 경험치가 0으로 돌아갑니다. 레벨 20에 도달했을 때 총 몇 마리의 몬스터를 죽였습니까?

public class Demo02 {
	public static void main(String[] args) {
		int monster = 20;
		int count = 0;
		int exp = 1200;
		for (int d = 2; d <= 20; d++) {
			int hero = 0;
			monster = (int) (monster * 1.05);
			exp = (int) (exp * 1.2);
			while (hero < exp) {
				hero += monster;
				count++;
			}
		}
		System.out.println(count + 1200 / 20);
	}
}

3. 주제: 복숭아를 먹는 원숭이 문제: 원숭이는 첫날 복숭아 몇 개를 따서 절반을 바로 먹었습니다. 그는 아직 만족하지 못하고 다음날 아침에 하나를 더 먹었습니다. 복숭아 반개를 먹고 하나 더 먹었다. 그 이후로 매일 아침 저는 전날 먹고 남은 음식을 반씩 먹었습니다. 10일째 되는 날 아침에 더 먹고 싶은데 복숭아가 한 개밖에 남지 않았네요. 첫날에 몇 명이 뽑혔는지 알아보세요.

프로그램 분석: 역발상 방식을 채택하고 뒤에서 앞으로 추론합니다.

public class Demo03 {
	public static void main(String[] args) {
        int sum = 1; 
        for(int i = 9;i > 0;i--){ 
            sum = (sum + 1) * 2; 
        } 
        System.out.println("第一天,有桃子"+sum+"颗"); 
    }
}

4. 질문: 특정 연도, 특정 월의 특정 날짜를 입력하고 이 날이 연중 무슨 날인지 확인하세요.

프로그램 분석: 3월 5일을 예로 들어 처음 두 달을 합산한 다음, 그 해의 날, 특별한 사정, 윤년인 5일을 더하고 입력해야 합니다. 월이 3보다 크면 하루를 추가하는 것이 좋습니다.

public class Demo04 {

	public static void main(String[] args) {
		int sum = 0;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入几年:");
		int year = sc.nextInt();
		System.out.println("请输入几月:");
		int month = sc.nextInt();
		System.out.println("请输入几号:");
		int day = sc.nextInt();
		GregorianCalendar gre = new GregorianCalendar();
		boolean isLeapYear = gre.isLeapYear(year);

		int ap = isLeapYear ? 29 : 28;
		int days = 0;
		switch (month) {
		case 1:
			days = day;
			break;
		case 2:
			days = 31 + day;
			break;
		case 3:
			days = 31 + ap + day;
			break;
		case 4:
			days = 31 + ap + 31 + day;
			break;
		case 5:
			days = 31 + ap + 31 + 30 + day;
			break;
		case 6:
			days = 31 + ap + 31 + 30 + 31 + day;
			break;
		case 7:
			days = 31 + ap + 31 + 30 + 31 + 30 + day;
			break;
		case 8:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + day;
			break;
		case 9:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + day;
			break;
		case 10:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
			break;
		case 11:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
			break;
		case 12:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
			break;

		default:
			System.out.println("月份输入错误");
			break;
		}
		System.out.println("这一天是这一年的第" + days + "天");
	}
}

5. 질문: 1, 2, 3, 4개의 숫자가 반복되지 않고 만들어질 수 있나요? 몇 개입니까?

프로그램 분석: 백의 자리, 십의 자리, 일의 자리에 들어갈 수 있는 숫자는 1, 2, 3, 4입니다. 모든 순열을 구성한 후 조건에 맞지 않는 순열을 제거합니다.

public class Demo05 {
	public static void main(String[] args) {
		int count = 0;
		for (int i = 1; i < 5; i++) {
			for (int j = 1; j < 5; j++) {
				for (int k = 1; k < 5; k++) {
					if (i != j && i != k && k != j) {
						count++;
						System.out.println(i * 100 + j * 10 + k);
					}
				}
			}
		}
		System.out.println("能组成" + count + "个互不相同无重复数字的三位数。");
	}
}

6. 질문: 공이 100미터 높이에서 자유롭게 떨어지면 땅에 닿을 때마다 다시 원래 높이의 절반으로 튕겨 나옵니다. 10번째로 땅에 닿으면 미터가 지나간 것입니다. 10회 랠리는 얼마나 높나요?

public class Demo06 {
	public static void main(String[] args) {
		double height= 100;
		double sum=100;
		for(int i=0;i<10;i++) {
			height=height/2;
			sum+=height*2;
		}
		System.out.println("第十次反弹高度为:"+height+"米");
		System.out.println("共经过:"+(sum-height*2)+"米");
	}
}

7. 질문: "수선화 숫자"를 모두 인쇄하세요. 소위 "수선화 숫자"는 세제곱합이 숫자 자체와 같은 세 자리 숫자를 의미합니다. 예: 153=1 세제곱 + 5 세제곱 + 3 세제곱이므로 153은 "수선화 수"입니다.

프로그램 분석: for 루프를 사용하여 100~999개의 숫자를 제어하고 각 숫자를 단위, 십, 백으로 분해합니다.

public class Demo07 {
	public static void main(String[] args) {
		System.out.println("100-999以内的水仙花数:");
		for(int n=100;n<=999;n++) {
			int a;
			int b;
			int c;
			a=n%10;
			b=((n%100)-a)/10;
			c=(int) Math.floor(n/100);
			if(n==(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3))) {
				System.out.println(n);
			}
		}
	}
}

8 주제: 양의 정수를 소인수로 분해합니다. 예: 90을 입력하면 90=2*3*3*5가 출력됩니다.

프로그램 분석: n을 소인수로 분해하려면 먼저 최소 소수 k를 찾은 후 다음 단계에 따라 완성해야 합니다.

(1) If 이 소수는 n과 정확히 동일합니다. 이는 소인수 분해 과정이 끝났음을 의미하므로 그냥 인쇄하세요.

(2) n>k이지만 n이 k로 나누어지면 k의 값을 인쇄해야 하며, n을 k로 나눈 몫을 새로운 양의 정수 n으로 사용해야 합니다. 첫 번째 단계를 반복하십시오.

(3) n이 k로 나누어지지 않으면 k+1을 k 값으로 사용하고 첫 번째 단계를 반복합니다.

public class Demo08 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		System.out.print(n + "=1*");
		for (int k = 2; k <= n / 2; k++) {
			if (n % k == 0) {
				System.out.print(k + "*");
				n = n / k;
				k = 2;
			}
		}
		System.out.println(n);
	}
}

9. 질문: 조건 연산자 중첩을 사용하여 이 질문을 완성하세요. 학업 점수가 90점보다 큰 학생은 A로 표시되고, 점수가 60~89점 사이인 학생은 B로 표시됩니다. 아래 60점은 C로 표시됩니다.

프로그램 분석: (a>b)?a:b 조건 연산자의 기본 예입니다.

public class Demo09 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n = sc.nextInt();
		long s = 0l;
		for (int i = 1; i <= n; i++) {
			s = s + a;
			a = a * 10 + a;
		}
		System.out.println(s);
	}
}

10. 질문: 숫자가 인수의 합과 정확히 같으면 그 숫자를 "완전수"라고 합니다. 예를 들어 6=1+2+3과 같이 1000 내의 모든 완전수를 찾는 프로그램입니다.

public class Demo10 {
	public static void main(String[] args) {
		for (int i = 1; i < 1000; i++) {
			int sum = 0;
			for (int j = i - 1; j >= 1; j--) {
				if (i % j == 0) {
					sum += j;
				}
			}
			if (sum == i) {
				System.out.println(i);	
			}
		}
	}
}

위 내용은 Java 초보자를 위한 10가지 작은 프로그램 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.