using System;using System.Linq;publicclassKata{publicstaticintNextPal(int val){int i =0,
size = val.ToString().Count();bool checkResult =true;
val++;while(i++!=(size /2)){while(true){if(size %2!=0){if(((val /(int)Math.Pow(10,(size /2)- i))%(int)Math.Pow(10,1))==((val /(int)Math.Pow(10,(size /2)+ i))%(int)Math.Pow(10,1)))break;}else{if(((val /(int)Math.Pow(10,(size /2)- i))%(int)Math.Pow(10,1))==((val /(int)Math.Pow(10,(size /2)-1+ i))%(int)Math.Pow(10,1)))break;}
val++;}/** ПРОВЕРКА РЕШЕНИЯ **/if(i ==(size /2)){
i =0;while(i++!=(size /2)){while(true){if(size %2!=0){if(((val /(int)Math.Pow(10,(size /2)- i))%(int)Math.Pow(10,1))==((val /(int)Math.Pow(10,(size /2)+ i))%(int)Math.Pow(10,1))){
checkResult &=true;break;}else{
checkResult =false;break;}}else{if(((val /(int)Math.Pow(10,(size /2)- i))%(int)Math.Pow(10,1))==((val /(int)Math.Pow(10,(size /2)-1+ i))%(int)Math.Pow(10,1))){
checkResult &=true;break;}else{
checkResult =false;break;}}}}if(checkResult !=true){
i =0;
checkResult =true;}elsebreak;}/** КОНЕЦ ПРОВЕРКИ РЕШЕНИЯ **/}return val;}}
答案2:
using System.Linq;publicclassKata{publicstaticintNextPal(int val){do{
val++;}while(val.ToString()!=string.Concat(val.ToString().Reverse()));return val;}}
答案3:
using System.Linq;publicclassKata{publicstaticintNextPal(int val){while(true){if(IsPalindrome(++val)){break;}}return val;}privatestaticboolIsPalindrome(int number){return number.ToString()==string.Concat(number.ToString().Reverse());}}
答案4:
using System;publicclassKata{publicstaticintNextPal(int val){var numStr =(val).ToString().ToCharArray();bool lenEven = numStr.Length %2==0;int centerIndex = numStr.Length /2-(lenEven?1:0);bool leftSide =true;for(int i = centerIndex; i >=0; i--){if(numStr[i]< numStr[numStr.Length -1- i]){break;}elseif(numStr[i]> numStr[numStr.Length -1- i]){
leftSide =false;break;}}if(leftSide){
val +=(int)Math.Pow(10, centerIndex +(lenEven ?1:0));}
numStr = val.ToString().ToCharArray();
centerIndex = numStr.Length /2-(lenEven?1:0);for(int i = centerIndex; i >=0; i--){
numStr[numStr.Length -1- i]= numStr[i];}returnint.Parse(newstring(numStr));}}
using System.Linq;publicclassKata{publicstaticintNextPal(int val){while(val+1!=int.Parse(string.Concat((val+1).ToString().Reverse()))){
val +=1;}return val+1;}}
答案7:
using System;using System.Linq;publicclassKata{publicstaticintNextPal(int val){do{
val++;}while(val.ToString()!=string.Join("", val.ToString().Reverse()));return val;}}
答案8:
using System;using System.Linq;publicclassKata{publicstaticintNextPal(int val ){var result = val +1;while(!IsPalindrome( result )){
result +=1;}return result;}privatestaticboolIsPalindrome(int n ){var s = Convert.ToString( n );return s.Reverse().SequenceEqual( s );}}
答案9:
using System;publicclassKata{publicstaticintNextPal(int val){for(int i = val +1; i <int.MaxValue; i++){var digits = i.ToString().ToCharArray();
Array.Reverse(digits);if(i.ToString()==newstring(digits))return i;}thrownewInvalidOperationException();}}
下一个回文编号.【难度:1级】:答案1:using System;using System.Linq;public class Kata{ public static int NextPal(int val) { int i = 0, size = val.ToString().Count(); bool checkResult = true;...