Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

哪位高手救救小妹!我现在也搞不清是什么问题?谢谢~~~~~~

Posted by wo_top at 2007-11-22 00:15:46 on Problem 1207
#include<stdio.h>
#include<vector>
#define number 5
using namespace std;
/*int link(int k)
{  int n=1;
   while(k!=1){
   if(k%2==1)k=3*k+1;
   else k=k/2;
   n++;
   }
   return n;
}
*/

int  link(int k)
{   vector<int>arry(1);
    int i=0,n=1,flag=0,len;
	
	while(k!=0)
	{ arry[i++]=k%10;
	  k=k/10;
	}
	while(!flag)
	{ 
		if(arry[0]!=1)flag=0;
		else 
		{for(int j=1;j<arry.size();j++)
		  { if(arry[j]!=0){
			  flag=0;
			  break;}
		  }
		  if(j>=arry.size())
			  flag=1;

		}

	 if(!flag)
	 {
		if(arry.front()%2==0){
		for(int t=arry.size()-1;t>=1;t--)
		{  if(arry[t]<2){arry[t-1]+=(arry[t]*10);arry[t]=0;}
		else if(arry[t]%2==0)
			arry[t]=arry[t]/2;
		else { arry[t]=arry[t]/2;
		       arry[t-1]+=((arry[t]%2)*10);
			}

		}
		if(t==0)arry[t]=arry[t]/2;
		n++;

		}
    
     else
   {   
	   for(int p=0;p<arry.size();p++)
	     arry[p]*=3;
      
       arry[0]+=1;
       
       len=arry.size();
	   
	   for(int q=0;q<len;q++)
	   {  arry[q+1]=arry[q]/10;
	      arry[q]=arry[q]%10;

	   }
	  
	  
    
     n++;

	}



	}
   
	}

    return n;
}


int nn(int i,int j)
{  int max=0;
   
   for(int k=i;k<=j;k++)
     { if(link(k)>=max)max=link(k);
	 }
	 return max;
}

void main()
{
   
  int x[number][2];
  for(int i=0;i<number;i++)
   {scanf("%d %d",&x[number][0],&x[number][1]);
    printf("%d %d %d\n",x[number][0],x[number][1],nn(x[number][0],x[number][1]));
  }
	
}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator