diff --git a/1658_alllike/doc/Readme.md b/1658_alllike/doc/Readme.md index b4f8d75..c49b881 100644 --- a/1658_alllike/doc/Readme.md +++ b/1658_alllike/doc/Readme.md @@ -1,3 +1,35 @@ -# 标题 +# 『入门』(函数专题)验证回文数的猜测 -* 内容 \ No newline at end of file +[问题描述] + +教学案例,必须使用函数完成求解! + +  左右对称的自然数称回文数。如121,4224,13731等,有人猜测:从任意一个两位或两位以上的自然数开始,将该数与它的逆序数(如1992的逆序数是2991)相加,得到一个新数,再用这个新数与它的逆序数相加,不断重复上述操作,经过若干步的逆序相加之后,总可以得到一个回文数,例如:从1992开始: +1992+2991=4983; +4983+3894=8877; +8877+7788=16665; +16665+56661=73326; +73326+62337=135663; +135663+366531=502194; +502194+491205=993399。 + +  经过七步就得到了回文数。 +  设计一个程序,由计算机在局部范围内验证回文数的猜测,并将寻找回文数的每一个步骤都显示出来。10步内不能得到则直接输出"NO" + +[输入格式] +  一个整数( 小于 10^5 )。 + +[输出格式] +  10步内得到回文数,则输出得到的步数,否则输出“NO”。 + +[输入样例] +1992 + +[输出样例] +1992+2991=4983 +4983+3894=8877 +8877+7788=16665 +16665+56661=73326 +73326+62337=135663 +135663+366531=502194 +502194+491205=993399 \ No newline at end of file diff --git a/1658_alllike/main.cpp b/1658_alllike/main.cpp index 988cea6..65b7b83 100644 --- a/1658_alllike/main.cpp +++ b/1658_alllike/main.cpp @@ -1,7 +1,72 @@ -#include +#include #include using namespace std; +int pan = 0, ans[11][10] = { 0 }, ce[11] = { 0 }; +void doit(int n[], int big) +{ + pan++; + ce[pan] = big; + if (pan == 11) { + cout << "NO"; + return; + } + for (int i = 0; i < ce[pan]; i++) { + ans[pan][i] += n[i] + n[ce[pan] - i - 1]; + ans[pan][i + 1] = ans[pan][i] / 10; + ans[pan][i] %= 10; + } + if (ans[pan][ce[pan]] != 0) { + ce[pan]++; + } + /* + for(int i=0;i=0;i--){ + cout<