程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 找出大於一個數的最小回文數

找出大於一個數的最小回文數

編輯:C++入門知識

[cpp]
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
/************************************************************************************************************************************************************
****                                                    
****                                        begin:      2012 10 12
****                                                    回文數
****    找出大於一個數的最小回文數
****                                        end  :      2012 10 12
****
************************************************************************************************************************************************************/ 
void main(){ 
    char data[10] = {0}, res[10] = {0}, state[10] = {0}, len = 0, pos, bit = 0; 
    scanf("%s",data); 
 
    len = strlen(data); 
    if(len % 2 == 0){//偶 
        pos = len/2 - 1; 
    } 
    else{ 
        pos = len/2; 
    } 
     
    while(pos - bit >= 0){ 
        if(len % 2 == 1){ 
            if(data[pos - bit] >= data[pos + bit]){ 
                res[pos - bit] = data[pos - bit]; 
                res[pos + bit] = data[pos - bit]; 
            } 
            else{ 
                data[pos - bit + 1]++; 
                memset(&data[pos - bit + 2], '0', len - (pos - bit+1)); 
                bit = 0; 
                continue;            
            } 
            bit ++; 
        } 
        else{ 
            if(data[pos - bit] >= data[pos + 1 + bit]){ 
                res[pos - bit] = data[pos - bit]; 
                res[pos + 1 + bit] = data[pos - bit]; 
            } 
            else{ 
                data[pos - bit ]++; 
                memset(&data[pos - bit + 1], '0', len - (pos - bit+1) + 1); 
                bit = 0; 
                continue; 
            } 
            bit ++; 
        } 
         
    } 
 
    printf("回文數為%s", res); 
 
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved