Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3n+1Problem/김태진: Difference between revisions

From ZeroWiki
imported>jereneal20
No edit summary
(Repair batch-0001 pages from live compare)
 
Line 1: Line 1:
== Status ==
== Status ==
{| class="wikitable"
{| class="wikitable" style="width:100%;"
|-
|-
| Memory
| Memory
Line 21: Line 21:
     int i,j,max=0,n=1,k,b,c;
     int i,j,max=0,n=1,k,b,c;
     unsigned int a=0;
     unsigned int a=0;
     int A[10000]={0};
     int A[10000]={0};
      
      
     while(1){
     while(1){
Line 33: Line 33:
             while(1){
             while(1){
                 if(a==1) break;
                 if(a==1) break;
                 if(a<i&&a>j) {n=A[i]; break;}  
                 if(a<i&&a>j) {n=A[i]; break;}  
                 if(a%2==1) {a=(3*a+1)>>1; n++;}
                 if(a%2==1) {a=(3*a+1)>>1; n++;}
                 else a=a>>1;
                 else a=a>>1;
                 n++;
                 n++;
             }
             }
             A[i]=n; //DP만드는중
             A[i]=n; //DP만드는중
             if(max<n) max=n;
             if(max<n) max=n;
             n=1;
             n=1;
Line 50: Line 50:
     return 0;
     return 0;
  }
  }

Latest revision as of 23:55, 26 March 2026

Status

Memory 164K Time 0MS
개발시간: 1시간, 입출력문제->1시간


Source Code

#include <stdio.h>

int main()
{
    int i,j,max=0,n=1,k,b,c;
    unsigned int a=0;
    int A[10000]={0};
    
    while(1){
        scanf("%d",&b);
        scanf("%d",&c);
        if(b>c) {j=c; k=b;}
        else {j=b; k=c;}
    //  조건?참일경우:거짓일경우;
        for(i=j;i<=k;i++){
            a=i;
            while(1){
                if(a==1) break;
                if(a<i&&a>j) {n=A[i]; break;} 
                if(a%2==1) {a=(3*a+1)>>1; n++;}
                else a=a>>1;
                n++;
            }
            A[i]=n; //DP만드는중
            if(max<n) max=n;
            n=1;
        
        }
        if(feof(stdin)) break;
        
        printf("%d %d %d\n",b,c,max);
        max=0;
    }
    return 0;
}