pat 1024

本來想用strrev 函數的。。。可是發現不能用,想偷懶,結果卻更麻煩
#include<iostream> 
#include <stdio.h>
#include <string.h>
using namespace std;
 
char num[1000];

int main()
{
  int f;
  int flag=1;
  scanf("%s %d",num,&f);

    int k,j;
   for(int i=1;i<=f;i++)
   {
	   int t=strlen(num);
       for( k=t-1, j=0;j<t;j++,k--)
	   {  
		  if(num[j]!=num[k]){
	        break;
		  }
		   if(j>=k){
			   flag=0;
			cout<<num<<endl;
			cout<<i-1<<endl;
			break;}

	    
	   }
        if(flag==0)return 0;
       if(flag)
	   {   //j計算新的NUM
	    char c[1000];
		int h=0;
		int ji=0;
		  for(int j=t-1,k=0;j>=0;j--,k++)
		  {
			    
		    c[h]=(ji+num[j]+num[k]-2*'0')%10+'0';  //進位
               ji=(ji+num[j]+num[k]-2*'0')/10;
			   h++;
		  }
		  if(ji){c[h]=ji+'0';h++;}
		  c[h]='\0';
                 for(int l=0;l<h;l++)
		   num[l]=c[h-l-1];
		     
	   }
	  
   }
   if(flag)
	  {
	    cout<<num<<endl;
		cout<<f<<endl;
	  }
	  
 
 return 0;
}

發佈了41 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章