• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C语言找出大于一个数的最小回文数

OC/C/C++ 水墨上仙 2655次浏览

C语言找出大于一个数的最小回文数

#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);
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C语言找出大于一个数的最小回文数
喜欢 (0)
加载中……