【手順1】 タイトル: つがいのウサギがいます ウサギは生後3か月目から4か月目まで、毎月、つがいのウサギを産みます。たとえウサギが死ななくても、毎月のウサギの総数は何匹ですか?
1. プログラム分析: ウサギのパターンは 1,1,2,3,5,8,13,21... というシーケンスです。
public class exp2{ public static 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) else を返します。
f(x-1)+f(x-2) を返します。
}
}
または
public class exp2{ public static void main(String args[]){ int i=0;
数学 mymath = new math(); for(i=1;i<=20;i++)
System.out.println(mymath.f(i));
}
}クラス数学
{ public int f(int x)
{ if(x==1 || x==2) else を返します。
f(x-1)+f(x-2) を返します。
}
}
【プログラム2】 問題:101~200の間に素数がいくつあるかを求め、すべての素数を出力してください。
1. プログラム解析:素数の求め方:2をsqrt(この数)で割れる数値をそれぞれ使用します。
これは、この数が素数ではないことを意味し、それ以外の場合は素数です。
public class exp2{ public static 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);
}
}クラス数学
{ public int f(int x)
{ if(x==1 || x==2) else を返します。
f(x-1)+f(x-2) を返します。
} public boolean iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return true;
}
}
【手順3】タイトル:「水仙数」をすべて出力する いわゆる「水仙数」とは、その3乗和がその数そのものに等しい3桁の数を指します。たとえば、153=1 の 3 乗 + 5 の 3 乗 + 3 の 3 乗なので、153 は「水仙数」です。
1. プログラム分析: for ループを使用して 100 ~ 999 の数値を制御し、各数値を単位、十の位、百の位に分解します。
パブリッククラスexp2{
public static void main(String args[]){ int i=0;
数学 mymath = new math(); for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true)
System.out.println(i);
}
}クラス数学
{ public int f(int x)
{ if(x==1 || x==2) else を返します。
f(x-1)+f(x-2) を返します。
} public boolean iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return true;
} public boolean 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 を返します。
false を返します。
}
}
【手順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 の値として使用し、最初のステップを繰り返します。
public class exp2{ public exp2(){} public 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);///この文は省略できません。省略しないと結果が間違っています
} public static void main(String[] args){
文字列 str="";
exp2 c=新しいexp2();
str=javax.swing.JOptionPane.showInputDialog("N の値を入力してください (終了するには exit を入力してください):");
int N;
Nt=r0y;{
N=Integer.parseInt(str);
}catch(NumberFormatException e){
e.printStackTrace();
}
System.out.print(N+"素因数の分解:"+N+"=");
c.fengjie(N);
}
}
[プログラム 5] 質問: 条件演算子のネストを使用してこの質問を完成させます。学力スコアが 90 点以上の学生は A で表され、スコアが 60 ~ 89 点の学生は B で表され、スコアが 60 未満の学生は代表されます。 C 著
1. プログラム解析: (a> b)?a:b これは条件演算子の基本的な例です。
インポート javax.swing.*; パブリック クラス ex5 { public static void main(String[] args){
文字列 str="";
str=JOptionPane.showInputDialog("N の値を入力してください (終了するには終了を入力してください):");
int N;
Nt=r0y;{
N=Integer.parseInt(str);
ca}tch(NumberFormatException e){
e.printStackTrace();
}
str=(N>90?"A":(N>60?"B":"C"));
System.out.println(str);
}
}
【プログラム6】 問題:2つの正の整数mとnを入力し、その最大公約数と最小公倍数を求めよ。
1. プログラム解析: 蒸着法を使用します。
最大公約数:
public class CommonDivisor{ public static void main(String args[])
{ 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);
commonDivisor(N,M%N) を返します;
}
}
最小公倍数と最大公約数:
java.util.Scanner パブリック クラスをインポートします。
{
//以下の方法は最大公約数を求める方法です
public static int gcd(int m, int n)
{その間 (真)
{if ((m = m % n) == 0) n を返す; if ((n = n % m) == 0) 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」でないことを条件とします。
インポート java.util.Scanner; パブリック クラス ex7 { public static void main(String args[])
{
System.out.println("文字列を入力してください:");
スキャナ scan=新しいスキャナ(System.in);
文字列 str=scan.next();
文字列 E1="[/u4e00-/u9fa5]";
Sintrting E2="[a-zA-Z]"; countH=0; int countE=0;
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))
{
countH++;
}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) throws IOException
{int s=0;
文字列出力="";
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("a の値を入力してください");
入力 =stadin.readLine(); (int i =1;i<=Integer.parseInt(input);i++)
{
ionuttput+= 入力; a=Integer.parseInt(出力);
s+=a;
}
System.out.println;
}
}
別の説明:
import java.io.*; public class Sumloop { public static void main(String[] args) throws IOException
{ int s=0; int t=0;
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
文字列入力 = stadin.readLine();
fno=rInteger.parseInt(入力); (int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println;
}
}
[プログラム 9] 質問: ある数値がその約数の合計と完全に等しい場合、その数値は「完全数」と呼ばれます。たとえば、6=1+2+3 1000 以内の完全な数をすべて見つけるプログラムです。
public class 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回目のラリーはどれくらいですか?
public class Ex10 { public static void main(String[] args)
{ ダブル s=0; ダブル t=100; for(int i=1;i<=10;i++)
{
s+=t;
t=t/2;
}
System.out.println;
System.out.println(t);
}
}
【手順11】 問題:1、2、3、4の数字が重複せずに作れる3桁の数字は何通りありますか。何人ですか?
1. プログラム分析: 百の位、十の位、一の位に入る数字はすべて 1、2、3、4 です。すべての順列を合成したら、条件を満たさない順列を削除します。
public class Wanshu { public static void main(String[] args)
{ int i=0; int j=0; int t=0; for(i=1;i<=4;i++) for(k) =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)が10万元以下の場合、ボーナスは10%増額され、利益が10万元を超え20万元未満の場合、10万元未満の部分は10%の増額となる。利益が10万元を超える場合、ボーナスは20万元から40万元までの部分については10%、20万元以上の部分については5%、40万元から60万元までの部分については手数料がかかります。手数料は40万元以上の場合は3%、60万元以上の場合は1.5%、100万元を超える部分は1%となります。パーセントの手数料。キーボードから当月の利益 I を入力してください。 配布されたボーナスの合計数を入力してください。
1. プログラム解析:数値軸を使って分割して配置してください。ボーナスを定義する場合は、整数として定義する必要があることに注意してください。
インポート java .util.*; パブリック クラス テスト { public static void main (String[]args){
double sum;//発行するボーナスを格納する変数で宣言
スキャナー入力 =new Scanner (System.in);//スキャナーをインポート
System.out.print ("当月の利益を入力してください");
double lirun=input .nextDouble();//コンソールから利益を入力します
if(lirun<=100000){
合計=リラン*0.1;
}else if (lirun<=200000){
合計=10000+リラン*0.075;
}else if (lirun<=400000){
合計=17500+リラン*0.05;
}else if (lirun<=600000){
合計=リラン*0.03;
}else if (lirun<=1000000){
合計=リラン*0.015;
} それ以外{
合計=リラン*0.01;
}
System.out.println("支払われるべきボーナスは "+sum);
}
}
以下の他の状況のコードは、読者によって改善される可能性があります。
【手順13】
質問: 整数は、100 を足すと完全二乗数になり、168 を足すと完全二乗数になります、この数は何ですか?
1. プログラム分析:100,000以内で判定するには、まず処方前の数値に100を足し、次に268を足して処方し、処方後の結果が以下の条件を満たす場合の結果となります。具体的な分析をご覧ください。
パブリック クラス テスト { public static void main (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 日を例に挙げると、まず過去 2 か月を合計し、次に閏年や 3 より大きい月を入力するなどの特別な状況である 5 日を追加する必要があります。追加の日を考慮する必要があります。
import java.util.*; public static void main (String[]args){ int month=0; int sum=0;
System.out.print("年、月、日/nを入力してください");
スキャナ入力 = 新しいスキャナ(System.in);
year=input.nextInt();
month=input.nextInt();
day=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] 問題: 3 つの整数 x、y、z を入力して、これら 3 つの数値を小さい順に出力してください。
1. プログラム分析: x に最小の数値を入力する方法を見つけます。まず x と y を比較し、x > y の場合、次に x と y の値を交換し、次に x と z を比較します (x > の場合)。 z は、x を最小化できるように、x と z の値を交換します。
import java.util.*; public static void main (String[]args){ int int j=0;
System.out.print("数字を 3 つ入力してください/n");
スキャナ入力 = 新しいスキャナ(System.in);
i=input.nextInt();
j=input.nextInt();
k=iifnput.nextInt(); (i>j)
{
x=i;
i=j;
j=x;
}if(i>k)
{
x=i;
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 は列を制御します。
public class jiijiu { 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();
}
}}
繰り返しの製品はありません (下の三角)
public class jiijiu { 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();
}
}}
上三角
public class jiijiu { 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] タイトル: 桃を食べるサル 問題: 猿は初日に桃を数個摘み、すぐに半分を食べましたが、まだ満足せず、さらに 1 個食べて、翌朝残りの半分を食べました。
もう一つ食べた。それ以来、私は毎朝、前日の残りを半分と1つ食べました。 10日目の朝、もっと食べようと思ったら、桃が1個だけ残っていた。初日に何匹選ばれたかを調べてください。
1. プログラム分析: 逆思考の方法を採用し、後ろから前へ推論します。
パブリッククラスの猿が桃を食べる{
static int total(int day){ if(day == 10){ return 1;
}else{ return (合計(日+1)+1)*2;
}
public static void main(String[] args)
{
System.out.println(total(1));
}}
[手順 18] トピック: 2 つの卓球チームが 3 人のプレーヤーで対戦します。チーム A は a、b、c の 3 人で構成され、チーム B は x、y、z の 3 人で構成されます。試合リストを決定するために抽選が行われました。誰かが選手たちに試合のメンバーについて尋ねました。 a は x とは競争しないと言い、c は x と z とは競争しないと言いました。3 つのチームの選手のリストを見つけるプログラムをプログラムしてください。
1. プログラム解析:素数の判定方法: 2 を 2 乗(この数)で割る数値を使用します。割り切れる場合は素数ではなく、割り切れない場合は素数です。
インポート java.util.ArrayList; パブリック クラス pingpang {
pSutbrliingg 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++) {
ピンパン a=新しいピンパン(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(文字列 a, 文字列 b, 文字列 c) { super(); this.b = b;
}
@pOubvelircride 文字列 toString() {
// TODO 自動生成されたメソッド スタブ
return "a の相手は "+a+"、"+"b の相手は "+b+"、"+"c の相手は "+c+"/n";
}
}
【プログラム19】タイトル:以下のパターンをプリントアウト(ひし形)
*
***
****
**********
****
***
*
1. プログラム分析: まず、グラフを 2 つの部分に分割します。最初の 4 行には 1 つのルールがあり、最後の 3 行には 1 つのルールがあり、最初の層は行を制御し、2 番目の層は列を制御します。 。
三角形:
public class StartG { public static void main(String [] args)
{ 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("");
}for(i=4;i>=1;i--)
{ for(j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
ダイヤモンド:
public class StartG { public static void main(String [] args)
{ int i=0; int j=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("");
}for(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 { public static void main(String[] args) { float fm = 1f; float fz = 1f; for (int i=0;i<20;i++)
温度 = FM;
fm = fz;
fz = fz + 温度;
合計 += fz/fm;
//System.out.println(sum);
}
System.out.println(sum);
}
}
[プログラム 21] 問題: 1+2!+3!+...+20! の合計を求めてください。
1. プログラム分析: このプログラムは累積を累積乗算に変更するだけです。
パブリッククラス Ex21 { 静的ロングサム = 0; 静的ロング fac = 0; パブリック静的 void main(String[] args) { ロングサム = 0; i<=10; i++ ) {
fac = fac * i;
合計 += ファク;
}
System.out.println(sum);
}}
[プログラム 22] タイトル: 再帰的方法を使用して 5! を見つけます。
1. プログラム解析:再帰式:fn=fn_1*4!
インポート java.util.Scanner; パブリック クラス Ex22 { public static void main(String[] args) {
スキャナ s = 新しいスキャナ (System.in); int n = s.nextInt();
Ex22 tfr = 新しい Ex22();
System.out.println(tfr.recursion(n));
}
public long recursion(int n) {long value = 0 if(n ==1 || n == 0) {
値 = 1;
} else if(n > 1) {
値 = n * 再帰(n-1);
}戻り値;
}}
【手順23】 質問:5人で座っていますが、5人目は何歳ですか? 4人目より2歳年上だそうです。 4人目の方に年齢を聞くと、3人目より2歳年上だと言われました。 3人目の方に聞いてみると、2人目より2歳年上だそうです。 2番目の人に尋ねると、彼は最初の人より2歳年上だと言いました。最後に最初の人に尋ねると、彼は10歳だと言いました。 5人目は何歳ですか?
1. プログラム分析: 再帰的手法を使用すると、再帰はバックトラッキングと再帰の 2 つの段階に分割されます。 5 人目の年齢を知りたい場合は、4 人目の年齢を知りたい場合は、1 人目 (10 歳) までを知る必要があります。
もう一度押し戻します。
public class Ex23 { static int getAge(int n){ if (n==1){ return 10;
2 + getAge(n-1) を返します。
} public static void main(String[] args) {
System.out.println("5 番目の年齢は:"+getAge(5));
}
}
[プログラム 24] 質問: 5 桁以下の正の整数が与えられた場合、要件は次のとおりです: 1. その桁数を調べます。2. 桁を逆順に出力します。
インポート java.util.Scanner; パブリック クラス Ex24 { public static void main(String[] args) {
Ex24 tn = 新しい Ex24();
スキャナ s = 新しいスキャナ (System.in); a = s.nextLong(); if(a < 0 || a > 100000);
System.out.println("エラー入力。このプログラムを再度実行してください。");
System.exit(0);
}if(a >=0 && a <=9) {
System.out.println( a + "は 1 桁です");
System.out.println("逆順の出力は " + '/n' + a);
} else if(a >= 10 && a <= 99) {
System.out.println(a + "は 2 桁の数字です");
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]; ブール値は =false ;
スキャナ s = new Scanner(System.in); 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]) {
= false;
} それ以外 {
は = 真です。
}
}if(is == false) {
System.out.println("回文ではありません!");
else if(is == true) {
System.out.println("これは回文です!");
}
}}
【プログラム26】 質問:曜日の最初の文字を入力して曜日を決定してください。最初の文字が同じ場合は、続けて2番目の文字を決定してください。
1. プログラム分析: 最初の文字が同じ場合は、2 番目の文字を判断するために、シチュエーション ステートメントまたは if ステートメントを使用する方が良いです。
インポート java.util.Scanner; パブリック クラス Ex26 { public static void main(String[] args){
// ユーザーが入力した 2 番目の文字を保存します
文字週秒;
// ユーザー入力を受け取るための入力オブジェクトとして Scanner クラスをインスタンス化します。
スキャナ入力 = 新しいスキャナ(System.in);
// プロンプトを開始し、ユーザー コンソール入力を受け取ります
System.out.print("週の値の最初の文字を英語で入力してください。曜日の決定をお手伝いします:");
文字列文字 = input.next();
// ユーザー コンソールの入力文字列の長さが 1 文字であるかどうかを判断します
if (letter.length() == 1){
//最初のインデックス ビットを取る文字を使用して、スキャナが char 型入力を受信できるようにします
char WeekFirst = Letter.charAt(0); switch (weekFirst){ case 'm':
//小文字が入力された場合、スイッチ構造機能を使用して、break文で次のcase分岐を実行し、ユーザーコンソール入力の大文字と小文字の区別を無視する機能を実装します
ケース「M」:
System.out.println("月曜日");
ブレーク; ケース 't':
//小文字が入力された場合、スイッチ構造機能を使用して、break文で次のcase分岐を実行し、ユーザーコンソール入力の大文字と小文字の区別を無視する機能を実装します
ケース「T」:
System.out.print("火曜日(火曜日)と木曜日(木曜日)はどちらも文字Tで始まるため、正しく判断するには2番目の文字を入力する必要があります: ");
文字 = input.next();
// ユーザー コンソールの入力文字列の長さが 1 文字であるかどうかを判断します
if (letter.length() == 1){
//最初のインデックス ビットを取る文字を使用して、スキャナが char 型入力を受信できるようにします
週秒 = 文字.charAt(0);
// or (||) 演算子を使用して、ユーザー コンソール入力の大文字と小文字の区別を無視する機能を実装します。
if (weekSecond == 'U' || WeekSecond == 'u'){
System.out.println("火曜日");
壊す;
// or (||) 演算子を使用して、ユーザー コンソール入力の大文字と小文字の区別を無視する機能を実装します。
} else if (weekSecond == 'H' || weekSecond == 'h'){
System.out.println("木曜日");
壊す;
// コンソールのエラーメッセージ
} それ以外{
System.out.println("入力エラー。週の値の 2 番目の文字が認識できません。プログラムは終了します!");
壊す;
}
} それ以外 {
// コンソールのエラーメッセージ
System.out.println("入力エラー。入力できる文字は 1 文字だけです。プログラムは終了します!");
壊す;
場合「w」:
//小文字が入力された場合、スイッチ構造機能を使用して、break文で次のcase分岐を実行し、ユーザーコンソール入力の大文字と小文字の区別を無視する機能を実装します
ケース「W」:
System.out.println("水曜日");
ブレーク; ケース 'f':
//小文字が入力された場合、スイッチ構造機能を使用して、break文で次のcase分岐を実行し、ユーザーコンソール入力の大文字と小文字の区別を無視する機能を実装します
ケース「F」:
System.out.println("金曜日");
ブレーク; ケース :
//小文字が入力された場合、スイッチ構造機能を使用して、break文で次のcase分岐を実行し、ユーザーコンソール入力の大文字と小文字の区別を無視する機能を実装します
ケース「S」:
System.out.print("土曜(土曜)と日曜(日曜)はどちらもSで始まるので、正しく判断するには2文字目を入力する必要があります: ");
文字 = input.next();
// ユーザー コンソールの入力文字列の長さが 1 文字であるかどうかを判断します
if (letter.length() == 1){
//最初のインデックス ビットを取る文字を使用して、スキャナが char 型入力を受信できるようにします
週秒 = 文字.charAt(0);
// or (||) 演算子を使用して、ユーザー コンソール入力の大文字と小文字の区別を無視する機能を実装します。
if (weekSecond == 'A' || WeekSecond == 'a'){
System.out.println("土曜日");
壊す;
// or (||) 演算子を使用して、ユーザー コンソール入力の大文字と小文字の区別を無視する機能を実装します。
} else if (weekSecond == 'U' || weekSecond == 'u'){
System.out.println("日曜日");
壊す;
// コンソールのエラーメッセージ
} それ以外{
System.out.println("入力エラー。週の値の 2 番目の文字が認識できません。プログラムは終了します!");
壊す;
}
} それ以外{
// コンソールのエラーメッセージ
System.out.println("入力エラー。入力できる文字は 1 文字だけです。プログラムは終了します!");
壊す;
デフォルト:
// コンソールのエラーメッセージ
System.out.println("入力エラー。週の値の最初の文字が認識できません。プログラムは終了します!");
壊す;
}
} それ以外{
// コンソールのエラーメッセージ
System.out.println("入力エラー。入力できる文字は 1 文字だけです。プログラムは終了します!");
}
}
}
【プログラム27】 タイトル:100以内の素数を探せ
public class Ex27 { public static void main(String args[])
{int sum,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 つの比較プロセスから最小のものを選択して最初の要素と交換し、次回は 2 番目の要素を使用して最後の 8 つの要素と比較します。交換してください。
インポート java.util.Arrays; インポート java.util.Scanner; public static void main(String[] args) { int arr[] = new int[11];
ランダム r=new ランダム(); for(int i=0;i<10;i++){
arr[i]=r.nextInt(100)+1;//100 以内の整数を 10 個取得します
}
Arrays.sort for (arr); (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. プログラム解析:double for ループを使用して 2 次元配列の入力を制御し、a[i][i] を累積して出力します。
public class Ex29 { public static 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. プログラム分析: まず、この数値が最後の数値より大きいかどうかを判断し、次に中央の数値を挿入することを検討します。挿入後、この要素の後の数値が順番に 1 つ後ろに移動されます。
import java.util.Random; public class ArraySort { public static void main(String[] args)
{ int temp=0; int myarr[] = 新しい int[12];
ランダム r=new ランダム(); 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 ]>myar[k])
{
temp=myarr[i];
myarr[i]=myarr[k];
myarr[k]=温度;
}
fSoyrstem.out.println(""); (int k=1;k<=10;k++)
System.out.print(myarr[k]+",");
fmoyarr[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】タイトル:整数aの右端から4~7桁を取り出します。
プログラム分析: 次のように考えることができます。
(1) まず a を右に 4 ビットシフトします。
(2) 下位4ビットがすべて1、残りがすべて0の数値を設定します。利用可能~(~0 < <4)
(3) 上記2つを&操作します。
public class Ex32 { public static void main(String[] args)
{ int a = 0 長い b = 18745678;
a=(int) Math.floor(b % Math.pow(10,7)/Math.pow(10, 3));
System.out.println(a);
}}
【プログラム33】
質問: Yang Hui の三角形を印刷してください (以下に示すように 10 行を印刷する必要があります)
1. プログラム分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
public class Ex33 { public static void main(String args[]){ int i,j;
a=新しい 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. プログラム解析: ポインタメソッドを使用します。
public class Ex34 { public static void main(String[] args)
{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=arrays[j];
配列[j]=配列[j+1];
配列[j+1]=一時;
}}} for(int n=0;n<arrays.length;n++)
System.out.println(arrays[n]);
}
}
【プログラム35】タイトル:配列を入力し、最大の要素と最初の要素を交換し、最小の要素と最後の要素を交換して配列を出力します。
import java.util.*; public class Ex35 { public static void main(String[] args) { int i, min, max, n, temp1, temp2;
System.out.println("配列の長さを入力してください:");
スキャナキーボード = 新しいスキャナ(System.in);
n = キーボード.nextInt();
a = 新しい int[n]; for (i = 0; i < n; i++) {
System.out.print("「番目」+(i+1)+「データ」を入力してください);
a[i] = キーボード.nextInt();
}
//上記は配列全体の入力です
最大 = 0;
最小 = 0;
// 2 つのフラグを設定し、両方とも最初の数値を指すようにします。
for (i = 1; i < n; i++) { if (a[i] > a[max])
max = i //配列を走査し、それが a[max] より大きい場合、その配列の添字を max に割り当てます。
if (a[i] < a[min])
min = i //上記と同様、a[min] より小さい場合は、配列の添え字を min に代入します。
}
//上記の for ループは最大値と最小値を見つけます。max は最大値の添字、min は最小値の添字です。
temp1 = a[0];
temp2 = a[min]; //これら 2 つの温度は交換のみに使用されます。
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[max] = a[n - 1];
a[n - 1] = temp1;
}
for (i = 0; i < n; i++) { //配列を出力する
System.out.print(a[i] + " ");
}}}
[プログラム 36] 質問: n 個の整数があるため、前の数値を m 位置だけ後方に移動し、最後の m 数値が最初の m 数値になります [プログラム 37]
質問: n 人の人が輪になって座り、順番に番号を付けています。最初の人からカウントを開始します(1から3までカウント)。
Import Java.util.scanner;
スキャナーs = system.in);
arr [i] = true; //添え字が真である場合、それはまだ円の中にあることを意味します
} int reptcount = n;
if(arr [index] == true){//円の中
countnum ++; //カウントインクリメント
if(countnum == 3){//報告するとき3
countnum = 0; //ゼロからカウントを続けます
arr [index] = false; //この人は円を終了します
leftcount-; //残りの人の数は1つ削減されます
}
}
index ++; //数値が報告されるたびに、添え字は1つ増加します
if(index == n){// sucrularカウントがnよりも大きい場合、1つの円がカウントされていることを意味します。
index = 0; //インデックスをゼロに設定し、再起動します。
}
} for(int i = 0; i <n; i ++){if(arr [i] == true){
System.out.println(i);
}
}
}
}
【プログラム38】
質問:文字列の長さを見つけて、その長さを出力します。
Import Java.util.scanner;
{
スキャナーs = new Scanner(system.in);
System.out.println("文字列を入力してください");
文字列mys = s.next();
System.out.println(str_len(mys));
} public static int str_len(string x)
{return x.length();
}
}
質問:入力nが偶数である場合、1/2+1/4+...+1/nを見つけます。 1+1/3+..。+1/n
【プログラム39】
トピック:文字列ソート。
Import Java.util。*;
{
ArrayList <String> list = new ArrayList <String>();
list.add( "010101");
list.add( "010003");
list.add( "010201");
(list);(int i = 0; i <list.size(); i ++){
System.out.println(list.get(i));
}}}
【プログラム40】
トピック:ビーチにはたくさんの桃があり、5つのサルがそれらを分割する必要があります。最初の猿は、桃の山をもう1つ持っていた場合、余分なものを海に投げ込み、1つの部分を奪いました。 2番目のモンキーは、残りの桃をもう1つずつ、3番目、4番目の桃を投げましたビーチにありますか?
パブリッククラス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); //サルが1つのピースを取ると残った合計金額を返します
}それ以外
{
//条件は満たされていません
fs = 1; // 1にリセットされます
ft(ts += 1); //桃の数に+1を追加します
}}}
public static void main(string [] args){new dg()。ft(0);
}
}