๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๐Ÿ’œ ๋ฐฑ์ค€

[๋ฐฑ์ค€] C 8์ผ์ฐจ (๋”ํ•˜๊ธฐ ์‚ฌ์ดํด #1110๋ฒˆ)

by eyes from es 2022. 12. 10.
728x90
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1110

 

1110๋ฒˆ: ๋”ํ•˜๊ธฐ ์‚ฌ์ดํด

0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 10๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์•ž์— 0์„ ๋ถ™์—ฌ ๋‘ ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ,

www.acmicpc.net


๋ฌธ์ œํ’€์ด

  • 26์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด 10์œผ๋กœ ๋‚˜๋ˆ  ๋ชซ์„ a, ๋‚˜๋จธ์ง€๋ฅผ b. ์ฆ‰ a=2, b=6
  • a + b = new (2 + 6 = 8)
    • count++; 
    • newA = b, newB = new % 10;
    • ์ฆ‰,  newA = 6, newB = 8
    • if  newA*10 + newB  == origin (=26) ์ด๋ผ๋ฉด count ๊ฐ’ ์ถœ๋ ฅ ํ›„ ๋ฆฌํ„ด

 

C code

#include <stdio.h>

int main()
{
    int number,a,b,new,origin,newA,newB,count=0;
    scanf("%d",&number);
    origin=number;
    a= number / 10;
    b= number % 10;
    
    while(1){
        count++;
        if( (b*10 + (a+b)%10) == origin ){
            printf("%d\n",count);
            return 0;
        }
        new = a+b;
        newA = b;
        newB = new%10;
        
        a = newA;
        b = newB;
        
    }
}

 

 

๊ฒฐ๊ณผ

 

728x90
๋ฐ˜์‘ํ˜•