ループの適用
3622 ワード
クイズゲーム:
逆順序:
出力結果:
700
007
改善:
出力結果:
700
7
f=1+1/2+1/3+......+1/nを計算するプログラムを書き出します:
出力結果:
100
5.187377517639621
出力する結果を小数2桁残したい場合は?出力のフォーマットを変更するには、System.out.printで変更:
出力結果:
100
5.19
f=1-1/2+1/3-1/4+・・+1/nが必要なら?上記のプログラムをさらに改善し、signを導入します.
あるいは、次のような方法もあります.
2つの数の最大公約数を求めます:
転がり相殺法:
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int number = (int)(Math.random()*100+1);
int a;
int count = 0;
do{
a = in.nextInt();
count = count +1;
if(a<number){
System.out.println(" ");
}
else if(a>number){
System.out.println(" ");
}
}while(a != number);
System.out.println(" , , "+count+" ");
}
}
逆順序:
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int number = in.nextInt();
do {
int digit = number % 10;
System.out.print(digit);
number = number / 10;
} while (number > 0);
}
}
出力結果:
700
007
改善:
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int number = in.nextInt();
int result = 0;
do {
int digit = number % 10;
result = result*10 +digit;
number = number / 10;
} while (number > 0);
System.out.println(result);
}
}
出力結果:
700
7
f=1+1/2+1/3+......+1/nを計算するプログラムを書き出します:
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
for(int i=1; i<=n; i++){
sum += 1.0/i;
}
System.out.println(sum);
}
}
出力結果:
100
5.187377517639621
出力する結果を小数2桁残したい場合は?出力のフォーマットを変更するには、System.out.printで変更:
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
for(int i=1; i<=n; i++){
sum += 1.0/i;
}
System.out.printf("%.2f",sum);
}
}
出力結果:
100
5.19
f=1-1/2+1/3-1/4+・・+1/nが必要なら?上記のプログラムをさらに改善し、signを導入します.
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
int sign = 1;
for(int i=1; i<=n; i++){
sum += sign * 1.0/i;
sign = -sign;
}
System.out.printf("%.2f",sum);
}
}
あるいは、次のような方法もあります.
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
int sign = 1;
for(int i=1; i<=n; i++){
// sum += sign * 1.0/i;
// sign = -sign;
if( i%2 == 1 ){
sum += 1.0/i;
}
else{
sum -= 1.0/i;
}
}
System.out.printf("%.2f",sum);
}
}
2つの数の最大公約数を求めます:
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int gcd = 1;
for(int i=2; i<=a && i<=b; i++){
if(a%i==0 && b%i==0){
gcd=i;
}
}
System.out.println(a+" "+b+" "+gcd);
}
}
転がり相殺法:
public class Au {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
while(b!=0){
int r = a % b;
a = b;
b = r;
}
int gcd = a;
System.out.println(gcd);
}
}