MultipleThree
1부터 사용자에게서 입력 받은 정수n (n>0) 까지의 정수 중에서 3의 배수 합을 계산하여 출력하는 프로그램
package week6;
import java.util.Scanner;
public class MultipleThree {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //스캐너 생성
int a = sc.nextInt(); //사용자에게 입력받은 값을 Int값으로 변환
int z = 0; //z 초기값 설정
for (int i=0; i<=a; i++ ) { //i가 0부터 a보다 작거나 같아질 때 까지 1씩 증가하면서 a+1번 반복
if (i%3 == 0 ) { //만약 i가 3의 배수면
z += i; //z에 i를 더하는 것을 반복 (3의 약수를 더함)
}
}
System.out.println(z); //z출력
}
}
Binary
입력받은 3자리 수의 정수를 2진수로 변환하여 출력하기
package week6;
import java.util.Scanner;
public class Binary {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //스캐너 생성
int a = sc.nextInt(); //사용자가 입력한 값을 Int 타입의 데이터로 반환
int r = 0; // r=0 초기값 설정
int n = 1; // w=1 초기값 설정, 2진수로 변환된 수의 자리를 결정하는 변수
if (a <= 99 || a > 999) { // a가 3자리수가 아닐때 out of range 출력
System.out.print("out of range");
} else {
for (int i = 0; a > 0; i++) { // i가 0부터 a보다 작을 때까지 1씩 증가하며 a번 반복
for (int k = 0; k < i; k++) { // 나머지 값에 자리수 부여
n = n * 10; //루프의 반복에 따라 10의 거듭제곱이 저장됨
}
int m = a%2; //입력받은 값의 나머지를 m에 저장
r = r + m * n ; // 입력받은 m에 자리 수를 부여 하고 r에 더해 대입하는 것을 반복
n = 1; // n을 1로 초기화
a = a / 2; //십진수를 이진수로 바꿀 때 2로 나누는 과정
}
System.out.println(r); //이진수 출력
}
}
}
package 혼자연습;
import java.util.Scanner;
public class Binary_3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = 0;
String r = ""; //초기값 설정
if (a < 100 || a > 999) { //범위 잘 생각하기. a<99면 99가 포함이 안돼서 오류 남
System.out.println("out of range");
}
else {
for (int i = 0; a > 0; i++) {
b=a%2;
r=b+r; //문자열과 정수를 더하면 그냥 문자열이 됨!! 이걸 몰라서 많이 헤맸다..
a=a/2; //이진법 구할때 계속 2로 나눠주는 방법을 생각하면 됨
}
System.out.print(r);
}
}
}
String + Int = String 값
이걸 몰라서 오래 헤맸음
a=a/2를 까먹어서는 안된다...
부등호 범위도 신경쓰기 a<99 XXXX a<100
PrimeNumber
package week6;
import java.util.Scanner;
public class PrimeNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //스캐너 생성
int a = sc.nextInt(); //사용자가 입력한 값을 Int 타입의 데이터로 반환
int P = 0; //소수의 개수
int b = 0; //b 초기 값 설정
if (a < 1) {
System.out.println("out of range"); //a가 1보다 작을 때 out of range 출력
}
else {
for (int i = 2; i <= a; i++) { //1은 소수
for (int k = 1; k <= i; k++) { //k가 1부터 i보다 작거나 같아질 때 까지 1씩 증가하며 반복
if (i % k == 0) {// i/k의 나머지가 0이면 k는 i의 약수가 됨.
b++; // b= 약수의 개수
}
}
if (b == 2) {
P++; //약수가 두개인 조건에 걸릴 때마다 1씩 증가함, 소수의 개수
}
b = 0; //b의 값 0으로 초기화
}
System.out.println(P); //소수의 개수 출력
}
}
}
Game369랑 비슷한듯
for문 + if 문 + 변수++ 를 사용해서 횟수를 세는 방법 ( i / k )
Game369랑 차이점은 case 문인지 if 문을 썼는지 차이 같은데 Game369에서는 박수0 1 2 번으로 경우가 나뉘지만
이건 약수가 2개인 조건만 만족하면 돼서 if문을 씀....
큰 포문 안에 b=0; 으로 초기화 해주는 거 까먹지 말기
'학교 > 컴프1' 카테고리의 다른 글
컴프 실습 코드 정리 (Week12) (1) | 2024.06.11 |
---|---|
컴프 1 실습 코드 정리 (Week11) (0) | 2024.05.26 |
컴프 1 실습 코드 정리 (W9~W10) (0) | 2024.05.26 |
컴프 1 실습 코드 정리(W7) (0) | 2024.05.26 |
컴프 1 실습 코드 정리 (W3~W5) (0) | 2024.04.08 |