[절차 1] 제목 : 고전적 문제 : 토끼 한 쌍이 생후 3개월부터 매달 한 쌍의 토끼를 낳는다. 토끼가 자라서 4개월이 되면 한 쌍의 토끼를 낳는다. 만약 토끼가 죽지 않더라도 매달 토끼의 수는 모두 몇 마리입니까?
1. 프로그램 분석: 토끼의 패턴은 1,1,2,3,5,8,13,21...의 순서입니다.
공개 클래스 exp2{ 공개 정적 void main(String args[]){ int i=0 for(i=1;i<=20;i++)
System.out.println(f(i));
}공개 정적 int f(int x)
{ if(x==1 || x==2) 1을 반환합니다.
f(x-1)+f(x-2)를 반환합니다.
}
}
또는
공개 클래스 exp2{ 공개 정적 void main(String args[]){ int i=0;
수학 mymath = 새로운 수학(); for(i=1;i<=20;i++)
System.out.println(mymath.f(i));
}
}수업 수학
{ 공개 int f(int x)
{ if(x==1 || x==2) 1을 반환합니다.
f(x-1)+f(x-2)를 반환합니다.
}
}
[프로그램 2] 질문: 101~200 사이에 소수가 몇 개 있는지 구하고, 모든 소수를 출력하세요.
1. 프로그램 분석: 소수 결정 방법: 숫자를 사용하여 2를 sqrt(이 숫자)로 각각 나눌 수 있으면
이는 이 숫자가 소수가 아니라는 의미입니다. 그렇지 않으면 소수입니다.
공개 클래스 exp2{ 공개 정적 void main(String args[]){ int i=0;
수학 mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true)
System.out.println(i);
}
}수업 수학
{ 공개 int f(int x)
{ if(x==1 || x==2) 1을 반환합니다.
f(x-1)+f(x-2)를 반환합니다.
}공개 부울 iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false;
}
}
[순서 3] 제목: "나르시스 수"를 모두 출력해 보세요. 소위 "수선화 수"는 세제곱합이 숫자 자체와 같은 세 자리 숫자를 말합니다. 예: 153=1 세제곱 + 5 세제곱 + 3 세제곱이므로 153은 "수선화 수"입니다.
1. 프로그램 분석: for 루프를 사용하여 100~999개의 숫자를 제어하고 각 숫자를 단위, 십, 백으로 분해합니다.
공개 클래스 exp2{
공개 정적 무효 메인(문자열 인수[]){ int i=0;
수학 mymath = new math(); for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true)
System.out.println(i);
}
}수업 수학
{ 공개 int f(int x)
{ if(x==1 || x==2) 1을 반환합니다.
f(x-1)+f(x-2)를 반환합니다.
}공개 부울 iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false;
}공개 부울 shuixianhua(int x)
{ int i=0,j=0,k=0;
i=x/100;
j=(x % 100) /10;
ik=fx % 10; (x==i*i*i+j*j*j+k*k*k) true를 반환합니다.
거짓을 반환;
}
}
【순서 4】제목 : 양의 정수를 소인수로 분해한다. 예: 90을 입력하면 90=2*3*3*5가 출력됩니다.
프로그램 분석: n을 소인수로 분해하려면 먼저 최소 소수 k를 찾은 후 다음 단계에 따라 완성해야 합니다.
(1) 이 소수가 n과 정확히 같다면 소인수 분해과정이 끝났다는 뜻이니 그냥 출력하시면 됩니다.
(2) n<>k인데 n이 k로 나누어지면 k의 값을 출력하고, n을 k로 나눈 몫을 새로운 양의 정수로 사용하고 첫 번째 단계를 반복해야 한다.
(3) n이 k로 나누어지지 않으면 k+1을 k의 값으로 사용하고 첫 번째 단계를 반복합니다.
공개 클래스 exp2{ 공개 exp2(){} 공개 void fengjie(int n){ for(int i=2;i<=n/2;i++){ if(n%i==0){
System.out.print(i+"*");
풍지에(n/i);
}
}
System.out.print(n);
System.exit(0);///이 문장은 생략할 수 없습니다. 그렇지 않으면 결과가 잘못됩니다.
}공개 정적 무효 메인(String[] args){
문자열 str="";
exp2 c=새로운 exp2();
str=javax.swing.JOptionPane.showInputDialog("N 값을 입력하십시오(종료하려면 종료를 입력하십시오):");
int N;
Nt=r0y;{
N=정수.parseInt(str);
}catch(NumberFormatException e){
e.printStackTrace();
}
System.out.print(N+"소인수 분해:"+N+"=");
c.펑지에(N);
}
}
[프로그램 5] 질문: 조건부 연산자의 중첩을 사용하여 이 질문을 완성합니다. 학업 점수가 90점 이상인 학생은 A로 표시되고, 60~89점 사이의 학생은 B로 표시되고, 60점 미만의 학생은 표시됩니다. C로
1. 프로그램 분석: (a> b)?a:b 조건 연산자의 기본 예입니다.
import javax.swing.*; 공용 클래스 ex5 { public static void main(String[] args){
문자열 str="";
str=JOptionPane.showInputDialog("N 값을 입력하십시오(종료하려면 종료를 입력하십시오):");
int N;
Nt=r0y;{
N=정수.parseInt(str);
ca}tch(NumberFormatException e){
e.printStackTrace();
}
str=(N>90?"A":(N>60?"B":"C"));
System.out.println(str);
}
}
[프로그램 6] 질문: 두 개의 양의 정수 m과 n을 입력하고, 최대 공약수와 최소 공배수를 구하세요.
1. 프로그램 분석: 증발법을 사용한다.
최대공약수:
공개 클래스 CommonDivisor{ 공개 정적 무효 메인(문자열 인수[])
{ commonDivisor(24,32);
}static int commonDivisor(int M, int N)
{ if(N<0||M<0)
{
Sryesttuermn.out.println("오류!");
}if(N==0)
{
rSeytsutrenm.out.println("가장 큰 공약수는 :"+M);
}return commonDivisor(N,M%N);
}
}
최소공배수와 최대공약수:
java.util.Scanner 공용 클래스 CandC 가져오기;
{
//다음 방법은 최대 공약수를 찾는 것입니다.
공개 정적 int gcd(int m, int n)
{그 동안 (사실)
{if ((m = m % n) == 0) return n; if ((n = n % m) == 0) return m;
}}
public static void main(String args[])에서 예외가 발생했습니다.
{
//입력값 가져오기
//스캐너 턱 = new Scanner(System.in);
/i/ntint a = chin.nextInt(), b = chin.nextInt(); int b=32;
System.out.println("최소 공배수: " + a * b / c + "/n 최대 공약수: " + c);
}}
[프로그램 7] 질문: 한 줄의 문자를 입력하고 그 안에 들어있는 영문자와 공백, 숫자, 기타 문자의 개수를 세어보세요.
1. 프로그램 분석: while문을 사용하여 입력문자가 '/n'이 아닌 것을 조건으로 한다.
import java.util.Scanner 공용 클래스 ex7 { public static void main(String args[])
{
System.out.println("문자열을 입력하세요:");
스캐너 스캔=새 스캐너(System.in);
문자열 str=scan.next();
문자열 E1="[/u4e00-/u9fa5]";
Sintrting E2="[a-zA-Z]"; countH=0; int countE=0; char[] arrChar=str.toCharArray();
String[] arrStr=new String[arrChar.length]; for (int i=0;i<arrChar.length;i++)
{
arrStr[i]=String.valueOf(arrChar[i]);
}for (문자열 i: arrStr )
{if (i.matches(E1))
{
개수H++;
}if (i.matches(E2))
{
카운트E++;
}
}
System.out.println("한자 개수"+countH);
System.out.println("문자 수"+countE);
}
}
[순서 8] 질문: s=a+aa+aaa+aaaa+aa...a의 값을 구하세요. 여기서 a는 숫자입니다. 예를 들어 2+22+222+2222+22222(이때 총 5개의 숫자가 추가됩니다.) 여러 숫자의 추가는 키보드로 제어됩니다.
1. 프로그램 분석: 각 항목의 가치를 계산하는 것이 핵심입니다.
import java.io.*; public class Sumloop { public static void main(String[] args)가 IOException을 발생시킵니다.
{int s=0;
문자열 출력="";
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("a의 값을 입력하세요");
Sfotrring 입력 =stadin.readLine(); (int i =1;i<=Integer.parseInt(input);i++)
{
ionuttput+=입력; a=Integer.parseInt(출력);
s+=a;
}
System.out.println(s);
}
}
또 다른 설명:
import java.io.*; public class Sumloop { public static void main(String[] args)가 IOException을 발생시킵니다.
{ 정수 s=0; 정수 n;
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
문자열 입력 = stadin.readLine();
fno=rInteger.parseInt(input); (int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println(s);
}
}
[프로그램 9] 질문: 숫자가 그 인수의 합과 정확히 같으면 그 숫자를 "완전수"라고 합니다. 예를 들어 6=1+2+3과 같이 1000 내의 모든 완전수를 찾는 프로그램입니다.
공용 클래스 Wanshu { public static void main(String[] args)
{ int s; for(int i=1;i<=1000;i++)
{
fs=o0r;(int j=1;j<i;j++) if(i % j==0)
s=s+j인 경우 (s==i)
System.out.print(i+" ");
}
System.out.println();
}
}
[순서 10] 질문: 공이 100미터 높이에서 자유낙하할 때마다 땅에 닿을 때마다 다시 원래 높이의 절반으로 튕겨져 나오며, 공이 맞을 때 총 몇 미터를 통과합니까? 10번째 땅? 10회 랠리는 얼마나 높나요?
공개 클래스 Ex10 { 공개 정적 무효 메인(문자열[] 인수)
{ 더블 s=0; 더블 t=100; for(int i=1;i<=10;i++)
{
s+=t;
t=t/2;
}
System.out.println(s);
System.out.println(t);
}
}
[순서 11] 질문: 1, 2, 3, 4개의 숫자가 있는데, 반복되지 않는 세 자리 숫자는 몇 개나 만들 수 있나요? 몇 개입니까?
1. 프로그램 분석 : 백, 십, 일의 자리에 들어갈 수 있는 숫자는 모두 1, 2, 3, 4 입니다. 모든 순열을 구성한 후 조건에 맞지 않는 순열을 제거합니다.
공용 클래스 Wanshu { public static void main(String[] args)
{ int i=0; int k=0; for(i=1;i<=4;i++) for(j=1;j<=4;j++) =1;k<=4;k++) if(i!=j && j!=k && i!=k)
{t+=1;
System.out.println(i*100+j*10+k);
}
System.out.println(t);
}
}
[절차 12] 질문: 회사에서 지급하는 보너스는 수익 커미션을 기준으로 합니다. 이익(I)이 100,000위안 이하인 경우 보너스는 10% 증가될 수 있으며, 이익이 100,000위안보다 크고 200,000위안 미만인 경우 100,000위안 미만인 부분은 10%가 적용됩니다. 수익이 100,000위안을 초과하는 경우 보너스는 10%입니다. 200,000~400,000 사이인 경우 수수료는 200,000위안을 초과하는 경우 5%입니다. ; 금액이 400,000~600,000 사이인 경우 400,000 위안 초과 부분은 3%, 600,000~100만 위안 사이인 경우 600,000 위안 초과 부분은 1.5%, 100만 위안 이상인 경우 수수료가 부과됩니다. , 수수료는 1.5%가 될 수 있으며, 100만 위안을 초과하는 부분에는 1%의 수수료가 적용됩니다. 키보드에서 해당 월의 수익 I를 입력하세요. 총 보너스 수는 어떻게 분배되어야 합니까?
1. 프로그램 분석 : 숫자축을 이용해 나누어서 찾아보세요. 보너스는 정의할 때 정수로 정의되어야 합니다.
import java .util.*; 공용 클래스 테스트 { public static void main(String[]args){
double sum;//보낼 보너스를 저장할 변수에 선언
스캐너 입력 =new Scanner(System.in);//스캐너 가져오기
System.out.print("이번달 수익을 입력하세요");
double lirun=input .nextDouble();//콘솔에서 수익 입력
if(lirun<=100000){
합계=lirun*0.1;
}그렇지 않으면 (lirun<=200000){
합계=10000+lirun*0.075;
}그렇지 않으면 (lirun<=400000){
합계=17500+lirun*0.05;
}그렇지 않으면 (lirun<=600000){
합계=lirun*0.03;
}그렇지 않으면 (lirun<=1000000){
합계=lirun*0.015;
} 또 다른{
합계=lirun*0.01;
}
System.out.println("지불해야 할 보너스는 "+sum);
}
}
아래의 다른 상황에 대한 코드는 독자가 개선할 수 있습니다.
【순서 13】
질문: 정수에 100을 더하면 완전제곱수가 되고, 168을 더하면 완전제곱수가 됩니다.
1. 프로그램 분석 : 100,000 이내에서 판단하려면 먼저 처방 전 숫자에 100을 더한 후, 처방 후 숫자에 268을 더한 후 처방하면 다음 조건을 만족하는 결과로 본다. 구체적인 분석을 참조하십시오:
공개 클래스 테스트 { 공개 정적 무효 메인(String[]args){
long k=0; for(k=1;k<=100000l;k++) if(Math.floor(Math.sqrt(k+100))==Math.sqrt(k+100) &&
Math.floor(Math.sqrt(k+168))==Math.sqrt(k+168))
System.out.println(k);
}
}
[프로그램 14] 질문: 특정 연도, 특정 월, 특정 날짜를 입력하고 이 날이 몇 월 며칠인지 알아보세요.
1. 프로그램 분석: 3월 5일을 예로 들면, 먼저 이전 두 달을 합산한 다음 윤년, 3보다 큰 입력월과 같은 특수한 상황인 5일을 더해야 합니다. 하루를 더 추가해야 합니다.
import java.util.*; public static void main(String[]args){ int day=0; int year=0;
System.out.print("연도, 월, 일/n을 입력하세요");
스캐너 입력 = new Scanner(System.in);
연도=input.nextInt();
월=input.nextInt();
일=input.nextInt();
switch(month) /*먼저 지난 달의 총 일수를 계산합니다*/
{사례 1:
합계=0;중단; 사례 2:
합계=31;중단 사례 3:
합계=59;중단 사례 4:
합계=90;예제 5:
합계=120;중단 사례 6:
합계=151;예시 7:
합계=181;경우 8:
합계=212;중단 사례 9:
합계=243;중단 사례 10:
합계=273;예제 11:
합계=304;중단 사례 12:
합계=334;중단;기본값:
System.out.println("데이터 오류");break;
}
sum=sum+day; /*특정일의 일수 더하기*/
if(year%400==0||(year%4==0&&year%100!=0))/*윤년인지 판단*/
elseleap=1;
도약=0;
if(leap==1 && Month>2)/*윤년이고 월이 2보다 큰 경우 총 일수에 1일을 더해야 합니다*/
합++;
System.out.println("오늘입니다:"+sum);
}
}
[프로그램 15] 질문: x, y, z 세 개의 정수를 입력하세요. 이 세 숫자를 작은 것부터 큰 것 순으로 출력해 주세요.
1. 프로그램 분석: x에 가장 작은 숫자를 넣는 방법을 찾습니다. 먼저 x와 y를 비교하고 x > y이면 x와 y의 값을 교환한 다음 x > 이면 x와 z를 비교합니다. z는 x가 최소화될 수 있도록 x와 z의 값을 교환합니다.
import java.util.*; public static void main(String[]args){ int i=0; int k=0;
System.out.print("3개의 숫자를 입력하세요/n");
스캐너 입력 = new Scanner(System.in);
i=input.nextInt();
j=input.nextInt();
k=iifnput.nextInt(); (i>j)
{
x=i;
i=j;
j=x;
}if(i>k)
{
x=i;
나=k;
k=x;
}if(j>k)
{
x=j;
j=k;
k=x;
}
System.out.println(i+", "+j+", "+k);
}
}
[프로그램 16] 질문: 9*9 수식을 출력합니다.
1. 프로그램 분석: 행과 열을 고려하면 총 9개의 행과 9개의 열이 있습니다. i는 행을 제어하고 j는 열을 제어합니다.
공용 클래스 jiujiu { public static void main(String[] args)
{ int i=0; int j=0; for(i=1;i<=9;i++)
{ for(j=1;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
반복되는 제품 없음(하단 삼각형)
공용 클래스 jiujiu { public static void main(String[] args)
{ int i=0; int j=0; for(i=1;i<=9;i++)
{ for(j=1;j<=i;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
위쪽 삼각형
공용 클래스 jiujiu { public static void main(String[] args)
{ int i=0; int j=0; for(i=1;i<=9;i++)
{ for(j=i;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
[순서 17] 제목 : 원숭이가 복숭아를 먹다 문제 : 원숭이가 첫날 복숭아 몇 개를 따서 절반을 바로 먹어치웠고, 아직 배불러서 하나 더 먹고 다음날 아침 남은 복숭아 절반을 먹었습니다.
하나 더 먹었습니다. 그 이후로 매일 아침 저는 전날 먹고 남은 음식을 반씩 먹었습니다. 10일째 되는 날 아침에 더 먹고 싶은데 복숭아가 한 개밖에 남지 않았네요. 첫날에 몇 명이 뽑혔는지 알아보세요.
1. 프로그램 분석: 역사고 방식을 채택하고 뒤에서 앞으로 추론합니다.
일반반 원숭이가 복숭아를 먹는다
static int total(int day){ if(day == 10){ return 1;
}else{ return (total(day+1)+1)*2;
}
공개 s}static void main(String[] args)
{
System.out.println(전체(1));
}}
[절차 18] 주제 : 두 개의 탁구 팀이 각각 3명의 선수로 구성되어 경쟁합니다. A팀은 a, b, c 3명으로 구성되고, B팀은 x, y, z 3명으로 구성됩니다. 경기 목록을 결정하기 위해 많은 사람들이 추첨되었습니다. 누군가가 선수들에게 게임 명단에 대해 물었습니다. a는 x와 경쟁하지 않는다고 말했고, c는 x와 z와 경쟁하지 않는다고 말했습니다. 세 팀의 선수 목록을 찾는 프로그램을 프로그래밍해 주세요.
1. 프로그램 분석: 소수 판단 방법: 숫자를 사용하여 2를 sqrt(이 숫자)로 각각 나눌 수 있으면 해당 숫자는 소수가 아니라는 의미이고, 그렇지 않으면 소수입니다.
import java.util.ArrayList 공개 클래스 pingpang {
pSutbrliincg sat,abt,icc; void main(String[] args) {
String[] op = { "x", "y", "z" };
ArrayList<pingpang> arrayList=new ArrayList<pingpang>(); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) for (int k = 0; k < 3 ;k++) {
pingpang a=new pingpang(op[i],op[j],op[k]) if(!aaequals(ab)&&!abequals(ac)&&!aaequals("x")
&&!acequals("x")&&!acequals("z")){
arrayList.add(a);
}
for}(객체 a:arrayList){
System.out.println(a);
}
}public pingpang(String a, String b, String c) { this.a = a.b = b;
}
@pOubvelircride 문자열 toString() {
// TODO 자동 생성된 메서드 스텁
"a의 상대는 "+a+", "+"b의 상대는 "+b+", "+"c의 상대는 "+c+"/n"을 반환합니다.
}
}
【프로그램 19】제목 : 다음 패턴(다이아몬드)을 인쇄해 보세요
*
***
****
**********
****
***
*
1. 프로그램 분석: 먼저 그래프를 두 부분으로 나눕니다. 처음 4개 행에는 하나의 규칙이 있고, 마지막 세 행에는 하나의 규칙이 있습니다. 이중 for 루프를 사용하면 첫 번째 레이어가 행을 제어하고 두 번째 레이어가 열을 제어합니다. .
삼각형:
공개 클래스 StartG { 공개 정적 무효 메인(문자열 [] 인수)
{ int i=0; int j=0; for(i=1;i<=4;i++)
{ for(j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}(i=4;i>=1;i--)
{ for(j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
다이아몬드:
공개 클래스 StartG { 공개 정적 무효 메인(문자열 [] 인수)
{ int i=0;
for(i=1;i<=4;i++)
{ for(int k=1; k<=4-i;k++)
.print(" ")에 대한 System.out(j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}(i=4;i>=1;i--)
{ for(int k=1; k<=5-i;k++)
System.out.print(" ")(j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
[절차 20] 질문: 분수의 수열이 있습니다: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13... 이 수열의 처음 20개 항목의 합을 구하세요. .
1. 프로그램 분석 : 분자와 분모의 변화하는 법칙을 파악해주세요.
공개 클래스 test20 { 공개 정적 void main(String[] args) { float fm = 1f; float fz = 1f; float temp = 0f;
온도 = fm;
fm = fz;
fz = fz + 온도;
합계 += fz/fm;
//System.out.println(sum);
}
System.out.println(sum);
}
}
[프로그램 21] 질문: 1+2!+3!+...+20의 합을 구하세요!
1. 프로그램 분석: 이 프로그램은 누적을 누적 곱셈으로 변경합니다.
public class Ex21 { static long sum = 0; public static void main(String[] args) { long sum = 0; i<=10; i++ ) {
fac = fac * i;
합계 += fac;
}
System.out.println(sum);
}}
[프로그램 22] 제목 : 재귀적 방법을 사용하여 5를 찾아라!.
1. 프로그램 분석: 재귀 공식: fn=fn_1*4!
import java.util.Scanner 공개 클래스 Ex22 { 공개 정적 void main(String[] args) {
Scanner s = new Scanner(System.in); int n = s.nextInt();
Ex22 tfr = 새로운 Ex22();
System.out.println(tfr.recursion(n));
}
공개 긴 재귀(int n) { 긴 값 = 0; if(n ==1 || n == 0) {
값 = 1;
} else if(n > 1) {
값 = n * 재귀(n-1);
}반환값;
}}
[순서 23] 질문: 5명이 함께 앉아있습니다. 5번째 사람은 몇 살인가요? 4번째 사람보다 2살 연상이라고 하더군요. 4번째 사람에게 몇 살이냐고 물었더니 3번째 사람보다 2살 연상이라고 하더군요. 세 번째 사람에게 물어보니 두 번째 사람보다 두 살 연상이라고 하더군요. 두 번째 사람에게 물어보니 첫 번째 사람보다 두 살 더 많다고 하더군요. 결국 첫 번째 사람에게 물어보니 10살이라고 하더군요. 다섯 번째 사람은 몇 살입니까?
1. 프로그램 분석: 재귀적 방법을 사용하여 재귀는 역추적과 재귀의 두 단계로 나뉩니다. 다섯 번째 사람의 나이를 알고 싶으면 네 번째 사람의 나이를 알아야 하고, 이런 식으로 첫 번째 사람(10세)까지 알아야 합니다.
다시 밀어 넣으세요.
공용 클래스 Ex23 { static int getAge(int n){ if (n==1){ return 10;
}return 2 + getAge(n-1);
}공개 정적 무효 메인(String[] args) {
System.out.println("다섯번째 시대는:"+getAge(5));
}
}
[프로그램 24] 질문: 5자리 이하의 양의 정수가 주어지면 요구 사항은 다음과 같습니다. 1. 몇 자릿수인지 알아보세요. 2. 숫자를 역순으로 인쇄하세요.
import java.util.Scanner 공개 클래스 Ex24 { 공개 정적 void main(String[] args) {
Ex24 tn = 새로운 Ex24();
Scanner s = new Scanner(System.in); long a = s.nextLong() if(a < 0 || a > 100000)
System.out.println("입력 오류입니다. 이 프로그램을 다시 실행해 주세요.");
시스템.exit(0);
}if(a >=0 && a <=9) {
System.out.println( a + "한 자리 숫자입니다.");
System.out.println("역순의 출력은 " + '/n' + a);
} else if(a >= 10 && a <= 99) {
System.out.println(a + "은(는) 두 자리 숫자입니다.");
System.out.println("역순으로 출력됩니다." );
tn.converse(a);
} else if(a >= 100 && a <= 999) {
System.out.println(a + "3자리 숫자입니다.");
System.out.println("역순으로 출력됩니다." );
tn.converse(a);
} else if(a >= 1000 && a <= 9999) {
System.out.println(a + "4자리 숫자입니다.");
System.out.println("역순으로 출력됩니다." );
tn.converse(a);
} else if(a >= 10000 && a <= 99999) {
System.out.println(a + "5자리 숫자입니다.");
System.out.println("역순으로 출력됩니다." );
tn.converse(a);
}
}public void converse(long l) {
String s = Long.toString char (l); [] ch = s.toCharArray() for(int i=ch.length-1; i>=0; i--)
System.out.print(ch[i]);
}
}}
[프로그램 25] 문제: 5자리 숫자, 회문번호인지 판별하세요. 즉, 12321은 회문수이고, 일의 자리는 천의 자리와 같고, 십의 자리는 천의 자리와 같습니다.
import java.util.Scanner; public class Ex25 { static int[] a = new int[] b = new int[5]; public static void main(String[] args) { boolean is =false ;
Scanner s = new Scanner(System.in); long l = s.nextLong() if (l > 99999 || l < 10000) {
System.out.println("입력 오류입니다. 다시 입력해주세요!");
l = s.nextLong();
}for (int i = 4; i >= 0; i--) { a[i] = (int) (l / (long) Math.pow(10, i));
l =(l % (long) Math.pow(10, i));
}
Sfyosrtem.out.println(); (int i=0,j=0; i<5; i++, j++)
b[j] = a[i];
}for(int i=0,j=4; i<5; i++, j--) { if(a[i] != b[j]) {
= 거짓;
} 또 다른 {
= 사실이다;
}
}if(is == false) {
System.out.println("Palindrom이 아닙니다!");
} else if(is == true) {
System.out.println("Palindrom입니다!");
}
}}
[프로그램 26] 질문: 요일을 판별하려면 요일의 첫 글자를 입력하십시오. 첫 글자가 같으면 계속해서 두 번째 글자를 판별하십시오.
1. 프로그램 분석: 상황문을 사용하는 것이 좋습니다. 첫 글자가 같다면 상황문이나 if 문을 사용하여 두 번째 글자를 판단하세요.
import java.util.Scanner 공용 클래스 Ex26 { public static void main(String[] args){
//사용자가 입력한 두 번째 문자를 저장합니다.
char weekSecond;
//사용자 입력을 받기 위한 입력 개체로 Scanner 클래스를 인스턴스화합니다.
스캐너 입력 = new Scanner(System.in);
//프롬프트를 시작하고 사용자 콘솔 입력을 받습니다.
System.out.print("주의 첫 글자 값을 영어로 입력해 주시면 요일을 결정하는 데 도움을 드리겠습니다.");
문자열 문자 = input.next();
//사용자 콘솔 입력 문자열의 길이가 한 글자인지 확인
if (letter.length() == 1){
//검사기가 char 유형 입력을 수신할 수 있도록 첫 번째 인덱스 비트를 사용하는 문자를 사용합니다.
char weekFirst = letter.charAt(0); 스위치(weekFirst){ 케이스 'm':
//소문자 입력시 스위치 구조 기능을 이용하여 break 문으로 다음 Case 분기를 실행하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능 구현
사례 'M':
System.out.println("월요일");
중단; 경우 't':
//소문자 입력시 스위치 구조 기능을 이용하여 break 문으로 다음 Case 분기를 실행하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능 구현
사례 'T':
System.out.print("화요일(화요일)과 목요일(목요일)은 모두 T로 시작하므로 두 번째 문자를 입력해야 정확하게 판단할 수 있습니다. ");
문자 = input.next();
//사용자 콘솔 입력 문자열의 길이가 한 글자인지 확인
if (letter.length() == 1){
//검사기가 char 유형 입력을 수신할 수 있도록 첫 번째 인덱스 비트를 사용하는 문자를 사용합니다.
weekSecond = letter.charAt(0);
//또는(||) 연산자를 사용하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능을 구현합니다.
if (weekSecond == 'U' || weekSecond == 'u'){
System.out.println("화요일");
부서지다;
//또는(||) 연산자를 사용하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능을 구현합니다.
} else if (weekSecond == 'H' || weekSecond == 'h'){
System.out.println("목요일");
부서지다;
//콘솔 오류 메시지
} 또 다른{
System.out.println("입력 오류입니다. 주 값의 두 번째 문자를 인식할 수 없습니다. 프로그램이 종료됩니다!");
부서지다;
}
} 또 다른 {
//콘솔 오류 메시지
System.out.println("입력 오류입니다. 한 글자만 입력할 수 있습니다. 프로그램이 종료됩니다!");
부서지다;
예: 'w':
//소문자 입력시 스위치 구조 기능을 이용하여 break 문으로 다음 Case 분기를 실행하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능 구현
사례 'W':
System.out.println("수요일");
중단; 사례 'f':
//소문자 입력시 스위치 구조 기능을 이용하여 break 문으로 다음 Case 분기를 실행하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능 구현
사례 'F':
System.out.println("금요일");
중단; 사례 's':
//소문자 입력시 스위치 구조 기능을 이용하여 break 문으로 다음 Case 분기를 실행하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능 구현
사례 'S':
System.out.print("토요일(토요일)과 일요일(일요일)은 모두 S로 시작하므로 두 번째 글자를 입력해야 정확하게 판단할 수 있습니다. ");
문자 = input.next();
//사용자 콘솔 입력 문자열의 길이가 한 글자인지 확인
if (letter.length() == 1){
//검사기가 char 유형 입력을 수신할 수 있도록 첫 번째 인덱스 비트를 사용하는 문자를 사용합니다.
weekSecond = letter.charAt(0);
//또는(||) 연산자를 사용하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능을 구현합니다.
if (weekSecond == 'A' || weekSecond == 'a'){
System.out.println("토요일");
부서지다;
//또는(||) 연산자를 사용하여 사용자 콘솔 입력의 대소문자 구분을 무시하는 기능을 구현합니다.
} else if (weekSecond == 'U' || weekSecond == 'u'){
System.out.println("일요일");
부서지다;
//콘솔 오류 메시지
} 또 다른{
System.out.println("입력 오류입니다. 주 값의 두 번째 문자를 인식할 수 없습니다. 프로그램이 종료됩니다!");
부서지다;
}
} 또 다른{
//콘솔 오류 메시지
System.out.println("입력 오류입니다. 한 글자만 입력할 수 있습니다. 프로그램이 종료됩니다!");
부서지다;
기본:
//콘솔 오류 메시지
System.out.println("입력 오류입니다. 주 값의 첫 글자를 인식할 수 없습니다. 프로그램이 종료됩니다!");
부서지다;
}
} 또 다른{
//콘솔 오류 메시지
System.out.println("입력 오류입니다. 한 글자만 입력할 수 있습니다. 프로그램이 종료됩니다!");
}
}
}
[프로그램 27] 제목 : 100 이내의 소수 찾기
공개 클래스 Ex27 { 공개 정적 무효 메인(문자열 인수[])
{int 합계,i; for(sum=2;sum<=100;sum++)
{for(i=2;i<=sum/2;i++)
{if(sum%i==0) 중단;
}if(i>합계/2)
System.out.println(sum+"은 소수입니다.");
}
}
}
[프로그램 28] 주제 : 숫자 10개 정렬하기
1. 프로그램 분석: 선택 방법을 사용할 수 있습니다. 즉, 마지막 9개 비교 프로세스에서 가장 작은 것을 선택하여 첫 번째 요소와 교환합니다. 다음 번에는 두 번째 요소를 사용하여 마지막 8개 요소와 비교합니다. 교환하세요.
import java.util.Arrays; import java.util.Scanner; public class Ex28 { public static void main(String[] args) { int arr[] = new int[11];
무작위 r=new Random(); for(int i=0;i<10;i++){
arr[i]=r.nextInt(100)+1;//100 이내의 정수 10개 가져오기
}
(arr)에 대한 Arrays.sort; (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
System.out.print("/n정수를 입력하세요: ");
스캐너 sc=새 스캐너(System.in);
arr[10]=sc.nextInt();//int 값을 입력하세요
Aflorrays.sort(arr); (int i=0;i<arr.length;i++)
System.out.print(arr[i]+"/t");
}
}
}
[프로그램 29] 질문: 3*3 행렬의 대각선 요소의 합을 구하세요.
1. 프로그램 분석: 이중 for 루프를 사용하여 2차원 배열의 입력을 제어한 후 a[i][i]를 누적하여 출력합니다.
공개 클래스 Ex29 { 공개 정적 void main(String[] args){ double sum=0; int array[][]={{1,2,3},{4,5, 6},{7,7,8 }}; for(int i=0;i<3;i++) for(int j=0;j<3;j++){ if(i==j)
합계=합 + 배열[i][j];
}
System.out.println(sum);
}
}
[프로그램 30] 질문: 정렬된 배열이 있습니다. 이제 숫자를 입력하고 원래 규칙에 따라 배열에 삽입하십시오.
1. 프로그램 분석: 먼저 이 숫자가 마지막 숫자보다 큰지 확인한 다음 중간 숫자를 삽입하는 것을 고려하세요. 삽입 후 이 요소 뒤의 숫자는 차례로 한 자리 뒤로 이동합니다.
import java.util.Random; 공용 클래스 ArraySort { public static void main(String[] args)
{ int temp=0; int myarr[] = 새로운 int[12];
무작위 r=new Random(); for(int i=1;i<=10;i++)
fomryarr[i]=r.nextInt(1000); (int k=1;k<=10;k++)
fSoyrstem.out.print(myarr[k]+","); (int i=1;i<=9;i++) for(int k=i+1;k<=10;k++) if(myarr[i ]>마이아르[k])
{
온도=myarr[i];
myarr[i]=myarr[k];
myarr[k]=온도;
}
fSoyrstem.out.println(""); (int k=1;k<=10;k++)
System.out.print(myarr[k]+",");
fmoyarrr[11]=r.nextInt(1000); (int k=1;k<=10;k++) if(myarr[k]>myarr[11])
{
fteomrp=myarr[11]; (int j=11;j>=k+1;j--)
myarr[j]=myarr[j-1];
myarr[k]=온도;
}
forSystem.out.println(""); (int k=1;k<=11;k++)
System.out.print(myarr[k]+",");
}
}
[프로그램 31] 제목 : 배열을 역순으로 출력합니다.
프로그램 분석: 첫 번째와 마지막을 바꿉니다.
실제로 루프를 사용하여 변수를 제어하는 것이 더 간단합니다.
for(int k=11;k>=1;k--)
System.out.print(myarr[k]+",");
[프로그램 32] 제목 : 오른쪽 끝부터 4~7자리 정수 a를 취하세요.
프로그램 분석: 다음과 같이 생각할 수 있습니다.
(1) 먼저 a를 오른쪽으로 4비트만큼 이동합니다.
(2) 하위 4비트는 모두 1, 나머지는 모두 0이 되도록 숫자를 설정합니다. 가능~(~0 < <4)
(3) 위 두 가지를 수행하고 동작시킨다.
공개 클래스 Ex32 { 공개 정적 무효 메인(문자열[] 인수)
{ 정수 a=0; 긴 b=18745678;
a=(int) Math.floor(b % Math.pow(10,7)/Math.pow(10, 3));
System.out.println(a);
}}
【프로그램 33】
질문: 양휘의 삼각형을 출력하세요. (아래 그림과 같이 10줄을 출력해야 합니다.)
1. 프로그램 분석:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
공개 클래스 Ex33 { 공개 정적 void main(String args[]){ int i,j int a[][];
a=new int[8][8]; for(i=0;i<8;i++){
a[i][i]=1;
a[i][0]=1;
for}(i=2;i<8;i++){ for(j=1;j<=i-1;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}for(i=0;i<8;i++){ for(j=0;j<i;j++){
System.out.printf(" "+a[i][j]);
}
System.out.println();
}
}
}
[프로그램 34] 문제: a, b, c 3개의 숫자를 입력하고 크기순으로 출력해 보세요.
1. 프로그램 분석: 포인터 방법을 사용합니다.
공개 클래스 Ex34 { 공개 정적 무효 메인(문자열[] 인수)
{int []arrays = {800,56,500}; for(int i=arrays.length;--i>=0;)
{for(int j=0;j<i;j++)
{if(배열[j]>배열[j+1])
{int temp=배열[j];
배열[j]=배열[j+1];
배열[j+1]=임시;
}}} for(int n=0;n<arrays.length;n++)
System.out.println(배열[n]);
}
}
[프로그램 35] 제목 : 배열을 입력하고, 가장 큰 요소를 첫 번째 요소와 바꾸고, 가장 작은 요소를 마지막 요소와 바꾸고, 배열을 출력합니다.
import java.util.*; public class Ex35 { public static void main(String[] args) { int i, min, max, n, temp1, temp2;
System.out.println("배열의 길이를 입력하세요:");
스캐너 키보드 = new Scanner(System.in);
n = 키보드.nextInt();
a = 새로운 int[n]; for (i = 0; i < n; i++) {
System.out.print(""번째" + (i + 1) + "데이터"를 입력하세요);
a[i] = 키보드.nextInt();
}
//위는 전체 배열의 입력입니다.
최대 = 0;
최소 = 0;
//첫 번째 숫자를 가리키는 것으로 시작하여 두 개의 플래그를 설정합니다.
for (i = 1; i < n; i++) { if (a[i] > a[max])
max = i; //배열을 탐색하고, a[max]보다 크면 배열 첨자를 max에 할당합니다.
if (a[i] < a[분])
min = i; //위와 동일, a[min]보다 작으면 그의 배열 첨자를 min에 할당
}
//위의 for 루프는 최대값과 최소값을 구하며, max는 최대값의 첨자, min은 최소값의 첨자입니다.
온도1 = a[0];
temp2 = a[min]; //이 두 온도는 교환용으로만 사용됩니다.
a[0] = a[최대];
a[max] = temp1; //먼저 a[0]과 최대값 a[max]를 교환합니다.
if (min != 0) { //최소값이 a[0]이 아닌 경우 다음을 실행합니다.
a[최소] = a[n - 1];
a[n - 1] = temp2; //a[min]과 a[n-1]을 교환합니다.
} else { //최소값이 a[0]인 경우 다음을 실행합니다.
a[최대] = a[n - 1];
a[n - 1] = 온도1;
}
for (i = 0; i < n; i++) { //배열 출력
System.out.print(a[i] + " ");
}}}
[프로그램 36] 질문: n 개의 정수가 있으므로 이전 숫자는 m 위치만큼 뒤로 이동하고 마지막 m 숫자는 첫 번째 m 숫자가 됩니다. [프로그램 37]
질문 : N은 원 안에 앉아서 순서대로 번호를 매기는 사람들이 있습니다. 첫 번째 사람의 계산을 시작하십시오 (1에서 3까지 계산).
java.util.scanner ex37 {public static void main (String [] args) {
스캐너 s = new 스캐너 (system.in);
arr [i] = true; // 첨자가 참이면 여전히 원 안에 있다는 것을 의미합니다.
} int countnum = 0;
if (arr [index] == true) {// 원 안에있을 때
Countnum ++ // // 증가 증분
if (countnum == 3) {//보고 할 때 3
countnum = 0; // 0에서 계속 계산합니다
arr [index] = false; //이 사람은 원을 나갑니다
LeftCount -; // 나머지 사람들의 수는 하나씩 줄어 듭니다.
}
}
index ++; // 숫자가보고 될 때마다 첨자가 하나씩 증가합니다.
if (index == n) {// 첨자가 n보다 큰 경우 하나의 원이 계산되었음을 의미합니다.
index = 0; // 인덱스를 0으로 설정하고 다시 시작합니다.
}
} for (int i = 0; i <n; i ++) {if (arr [i] == true) {
System.out.println(i);
}
}
}
}
【프로그램 38 8
질문 : 함수를 작성하여 문자열의 길이를 찾으십시오.
java.util.scanner ex38 {public static void main (String [] args)
{
스캐너 S = 새 스캐너 (System.In);
System.out.println("문자열을 입력해주세요");
문자열 mys = s.next ();
System.out.println (str_len (mys));
} public static int str_len (문자열 x)
{return x.length ();
}
}
질문 : 함수를 작성하십시오. 입력 n이 짝수 숫자 일 때, 함수를 호출하여 1/2+1/4+...+1/n이 홀수 인 경우 함수 1/를 호출하십시오. 1+1/3+...+1/n
【프로그램 39 9
주제 : 문자열 정렬.
java.util.*; Public Static Void Main (String [] args)
{
ArrayList <string> list = new ArrayList <string> ();
list.add ( "010101");
list.add ( "010003");
list.add ( "010201");
collections.sort for (list);
System.out.println (list.get (i));
}}}
【프로그램 40】
주제 : 해변에는 많은 복숭아가 있으며 5 개의 원숭이가 그들을 나누어야합니다. 첫 번째 원숭이는 복숭아 더미를 다섯 부분으로 나누었습니다. 두 번째 원숭이는 남은 복숭아를 5 개의 동등한 부분으로 나누었고, 한 번 더 많은 복숭아가 바다에 던졌습니다 해변에 있습니까?
공개 클래스 DG {
정적 int ts = 0; // 총 복숭아 수
int fs = 1; // 점수를 기록합니다
정적 int hs = 5; // 원숭이 수 ...
int tsscope = 5000; // 복숭아 수의 값 범위.
public int ft (int t) {if (t == tsscope) {
// 복숭아 수가 최대 값 범위에 도달하면 재귀를 취소합니다.
System.out.println ( "End");
0을 반환합니다.
} else {if ((t-1)%hs == 0 && fs <= hs) {if (fs == hs)
{
System.out.println ( "복숭아 분할 조건은 복숭아 수 =" +ts +"");
}
FS+= 1;
반환 ft ((t-1)/5*4); // 원숭이가 한 조각을 가져간 후 남은 총 금액을 반환합니다.
}또 다른
{
// 조건이 충족되지 않습니다
fs = 1; // 분 수는 1로 재설정됩니다
ft (ts += 1); // 복숭아 수에 +1을 추가하십시오
}}}
public static void main (String [] args) {new dg (). ft (0);
}
}