4-1
1. x>10 & x<20 or x>10 && x<20
2. !(ch == ' ' | ch == '\t') or ch != ' ' | ch != '\t'
3. (ch == 'x' | ch == 'X')
4. (ch >= '0' & ch <= '9')
5. (ch >= 'a' & ch <= 'z' | |ch >= 'A' & ch <= 'Z')
6. (year%400 == 0 || (year%4 == 0 & year%100 != 0))
7. (!powerOn)
8. (str.equals("yes"))
4-2
int sum = 0;
for(int i=1;i<=20;i++){
if(i%2 != 0 & i%3 != 0)
sum += i;
}
System.out.println(sum);
4-3
static int sum(int num){
if(num == 1)
return 1;
return num+sum(num-1);
}
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=10;i++)
sum += sum(i);
System.out.println(sum);
}
4-4
int sum = 0;
int i;
for(i=1;;i++){
if(i%2 == 0)
sum += -i;
else
sum += i;
if(sum >= 100)
break;
}
System.out.println(i+" : "+sum);
4-5
int i = 0,j = 0;
while(i<=10){
j = 0;
while(j<=i){
System.out.print("*");
j++;
}
i++;
System.out.println();
}
4-6
for(int i=1;i<=6;i++){
for(int j=1;j<=6;j++){
if(i+j == 6)
System.out.println("i: "+i+", j: "+j+", sum: "+(i+j));
}
}
4-7
int value = (int)(Math.random()*6)+1;
4-8
for(int x=0;x<=10;x++){
for(int y=0;y<=10;y++){
if(2*x+4*y == 10)
System.out.println("x="+x+", y="+y);
}
}
4-9
String str = "12345";
int sum = 0;
for(int i=0;i<str.length();i++){
sum += str.charAt(i) - '0';
}
System.out.println(sum);
4-10
int num = 12345;
int sum = 0;
int pst1 = 10; // 나머지 구하기 위한 자리수
int pst2 = 1; // 1의 자리로 만들기 위한 자리수
int tmp; // 나머지값 저장할 임시변수
while(num != 0){
tmp = num % pst1; // 나머지 구해서
sum += (tmp/pst2); // 1의자리로 만든 다음에 더해줌
num -= tmp; // 나머지만큼 원래 숫자에서 빼줌
pst1 *= 10; // 자리수 증가
pst2 *= 10;
}
System.out.println(sum);
4-11
int num1 = 1;
int num2 = 1;
int num3 = 0;
System.out.print(num1+","+num2);
for(int i=0;i<8;i++){
num3 = num1+num2;
System.out.print(","+num3);
int tmp;
tmp = num2;
num2 = num3;
num1 = tmp;
}
4-12
int x = 1, y = 1, tmp, tmpSum = 0;
for(int i=0;i<3;i++){ // 행1
for(int j=1;j<=3;j++){ // 행2
tmp = 1; // 열에서 단수 증가 시키려고
for(int k=0;k<3;k++){ // 열
tmpSum = x+tmp;
if(tmpSum == 10) // 10단 출력 안하게
break;
System.out.print(tmpSum+"*"+j+"="+(tmpSum*j)+'\t');
tmp++;
}
System.out.println();
}
x += 3; // 행2 끝나면 단수 증가 +3
System.out.println();
}
4-13
String value = "12o34";
char ch = ' ';
boolean isNumber = true;
for(int i=0;i<value.length();i++){
if(!(value.charAt(i) >= '0' & value.charAt(i) <= '9')){
isNumber = false;
break;
}
}
if(isNumber)
System.out.println(value+"는 숫자입니다.");
else
System.out.println(value+"는 숫자가 아닙니다.");
4-14
int answer = (int)(Math.random()*100)+1;
int input = 0;
int count = 0;
java.util.Scanner sc = new java.util.Scanner(System.in);
do{
count++;
System.out.print("1과 100사이의 값을 입력하세요 : ");
input = sc.nextInt();
if(input < 0 | input > 100){
System.out.println("input error!");
if(count > 0)
count--;
}
else if(input > answer)
System.out.println("Down!");
else if(input < answer)
System.out.println("Up!");
else{
System.out.println("congratulation!!!");
System.out.println("Count is "+count);
break;
}
} while(true);
4-15
int number = 12321;
int tmp = number;
int result = 0;
// 총 몇자리 숫자인지 먼저 검사
int cnt = 0; // 자리수 카운트 할 변수
for(int pst=1;;pst*=10){
if(tmp/pst == 0)
break;
cnt++;
}
int pst = 1;
int pst1 = 10;
int pst2 = 1;
final int POSITION = 10;
int tmpNum = 0;
while(tmp != 0){
tmpNum = (tmp % pst1); // 나머지 구한 후
tmp -= tmpNum; // 원래값에서 나머지 빼고(반복문 종료를 위해)
tmpNum /= pst; // 나머지를 다시 1의 자리로 만듦
for(int i=1;i<cnt;i++) // 자리수 증가 (1의 자리면 젤 큰 10의자리, 10의 자리면 그 다음 큰 10의자리... 이런 식으로)
pst2 *= POSITION;
result += (tmpNum*pst2); // 1의자리로 만들었던 그걸 바꿀 자리수로 곱해줌
cnt--; // 자리수 하나 감소하고
pst *= 10; // 1의 자리 만드는 십의 자리 증가하고
pst1 *= 10; // 나머지 구하는 십의 자리 증가하고
pst2 = 1; // 자리수 증가하는건 다시 1로
}
if(number == result)
System.out.println(number+"은 회문수 입니다.");
else
System.out.println(number+"은 회문수가 아닙니다.");
'예전 포스팅 모음' 카테고리의 다른 글
[java] 자바의 정석 연습문제 ch07 (0) | 2014.09.19 |
---|---|
[java] 자바의 정석 연습문제 ch05 (0) | 2014.09.19 |
[java] 자바의 정석 연습문제 ch03 (0) | 2014.09.19 |
[java] 자바의 정석 연습문제 ch02 (0) | 2014.09.19 |
[DB] 테이블 생성 및 crud sql문 예제 (0) | 2014.09.19 |