728x90
  • ์ง์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ™€์ˆ˜๊ฐ€ ์•„๋‹ ๋•Œ๊นŒ์ง€ 2๋กœ ๊ณ„์† ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ ์ตœ์ดˆ๋กœ ํ™€์ˆ˜๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„์— ํ•ด๋‹น ๊ฐ’์„ ์ถœ๋ ฅํ•œ ๋’ค ๋๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?
  • ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” 2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์•ผ ๋๋‚ ์ง€๋ฅผ ์•Œ ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ–ˆ์„ ๋•Œ break๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
#include <stdio.h>
#include <stdbool.h>

int main() {

	int n;
	scanf("%d", &n);

	while (true) {
		printf("current val is %d\n", n);
		if (n % 2 == 0) {
			printf("n is even\n");
			n = n / 2;
		}
		else {
			printf("n is odd\n");
			break;
		}
	}
	printf("%d", n);

	return 0;

}

โ–ถ ๋ฌธ์ œ: ์ž์—ฐ์ˆ˜ ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ์กฐ๊ฑด์— ๋”ฐ๋ผ, ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ์„ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด ์ง์ˆ˜์ธ ๊ฒฝ์šฐ, ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
  • ์ด ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ, ์„ ๊ณฑํ•˜๊ณ  ์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ช‡ ๋ฒˆ์„ ๋ฐ˜๋ณตํ•ด์•ผ, ์ด ๋˜๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด,  ์ธ ๊ฒฝ์šฐ,
 ์ˆœ์„œ๋กœ ์ด ๋˜๋ฏ€๋กœ ๋‹ต์ด ์ด ๋ฉ๋‹ˆ๋‹ค.

int main() {
    int n, cnt=0;
    scanf("%d",&n);

    while(true){
        if(n==1){
            break;
        }
        if(n%2==0){
            n/=2;
        }
        else if(n%2==1){
            n=n*3+1;
        }
        cnt++;
        
    }
    printf("%d",cnt);
    return 0;
}

์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ธ ์„ ์ž…๋ ฅ๋ฐ›์•„,  ๋ฅผ ๋งŒ์กฑํ•˜๋Š”  ๊ฐ’์„ ๊ตฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n,x;
    int cnt=0;

    scanf("%d",&n);

    while(1){
        n/=2;
        
        if(n==0){
            break;
        }
        cnt++;
    }
    printf("%d",cnt);
    return 0;
}

์ •์ˆ˜ n์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•  ๋•Œ, cnt ๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ํ–ˆ์„ ๋•Œ ์ฒ˜์Œ์œผ๋กœ 1,000 ์ด์ƒ์ด ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. cnt์˜ ๊ฐ’์„ ๊ตฌํ•ด๋ณด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

  • n์ด ์ง์ˆ˜์ผ ๋•Œ, n์— 3์„ ๊ณฑํ•˜๊ณ  1์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.
  • n์ด ํ™€์ˆ˜์ผ ๋•Œ, n์— 2๋ฅผ ๊ณฑํ•˜๊ณ  2๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.
#include <stdio.h>

int main() {
    int n;
    int cnt = 0;

    scanf("%d",&n);

    while(1){
        if(n>=1000){
            break;
        }
        if(n%2==0){
            n = n*3+1;
        }
        else{
            n = n*2+2;
        }
        cnt++;
    }
    printf("%d",cnt);

    return 0;
}

+ Recent posts