pc/uva 110101/100 3n+1 problem(已解决)

来源:互联网 发布:us域名注册条件 编辑:程序博客网 时间:2024/05/16 23:55

ansic C:

#include <stdio.h>int iscorrect(int n);int length1(int n);void swap(int *p,int *q);int main(){      int i,j, m,n,flag,max;    // char flag;  while(scanf("%d %d",&i,&j) != EOF){     max = 0;    n = i;    m =j;    if (i > j)       swap(&i,&j);    if(iscorrect(i) && iscorrect(j) ){                     while (i <= j){                           flag = length1(i);                            i++;                             if(flag> max)                                max = flag;                                         }           printf("%d %d %d\n",n,m,max);         //  printf("\n");                              }     else {          printf("you inputting is error,please input again \n ");          }                           }            //system("pause");} int iscorrect(int n){      if (n> 0 && n < 1000000)           return 1;       else            return 0;          }   int length1(int n){    int len;    len = 1;     while (n != 1){            if(n % 2 == 0){               len ++;               n = n/2;             }             else {                  n = 3*n +1;                  len++;                  }           }      return len;         }   void swap(int *p,int *q){       int temp;           temp = *p;           *p = *q;           *q = temp;       }   

需要注意的问题是:对于整数i,j,他们之间大小没有确定,所以我们要判断哪个大,哪个小。

原创粉丝点击