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 중국어 웹사이트의 기타 관련 기사를 참조하세요!