corse(函数专题)验证回文数的猜测
This commit is contained in:
parent
1663be60f3
commit
c199712adc
@ -1,3 +1,35 @@
|
|||||||
# 标题
|
# 『入门』(函数专题)验证回文数的猜测
|
||||||
|
|
||||||
* 内容
|
[问题描述]
|
||||||
|
|
||||||
|
教学案例,必须使用函数完成求解!
|
||||||
|
|
||||||
|
左右对称的自然数称回文数。如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
|
@ -1,7 +1,72 @@
|
|||||||
#include <algorithm>
|
#include <cstring>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
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<ce[pan];i++){
|
||||||
|
cout<<n[i];
|
||||||
|
}
|
||||||
|
cout<<"+";
|
||||||
|
for(int i=ce[pan]-1;i>=0;i--){
|
||||||
|
cout<<n[i];
|
||||||
|
}
|
||||||
|
if(ans[pan][ce[pan]]!=0){
|
||||||
|
ce[pan]++;
|
||||||
|
}
|
||||||
|
cout<<"=";
|
||||||
|
for(int i=ce[pan]-1;i>=0;i--){
|
||||||
|
cout<<ans[pan][i];
|
||||||
|
}
|
||||||
|
cout<<endl;*/
|
||||||
|
for (int i = 0; i < ce[pan] / 2; i++) {
|
||||||
|
if (ans[pan][i] != ans[pan][ce[pan] - i - 1]) {
|
||||||
|
//cout<<pan<<endl;
|
||||||
|
doit(ans[pan], ce[pan]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= pan; i++) {
|
||||||
|
for (int j = ce[i-1] - 1; j >= 0; j--) {
|
||||||
|
cout << ans[i-1][j];
|
||||||
|
}
|
||||||
|
cout << "+";
|
||||||
|
bool u=0;
|
||||||
|
for (int j = 0; j < ce[i-1]; j++) {
|
||||||
|
if(u!=0||ans[i-1][j]!=0){
|
||||||
|
cout << ans[i-1][j];
|
||||||
|
u=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cout << "=";
|
||||||
|
for (int j = ce[i] - 1; j >= 0; j--) {
|
||||||
|
cout << ans[i][j];
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
string n;
|
||||||
|
cin >> n;
|
||||||
|
ce[0]=n.size();
|
||||||
|
for (int i = 0; i < ce[0]; i++) {
|
||||||
|
ans[0][ce[0]-i-1] = n[i] - '0';
|
||||||
|
}
|
||||||
|
doit(ans[0], ce[0]);
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
89
|
@ -0,0 +1 @@
|
|||||||
|
1993
|
@ -0,0 +1 @@
|
|||||||
|
32767
|
@ -1,7 +1,29 @@
|
|||||||
## z:\Chao\src\Template\test\in.txt
|
## z:\Chao\src\1658_alllike\test\in.txt
|
||||||
2020/03/14 ÖÜÁù 11:41:28.68
|
2020/04/24 ÖÜÎå 12:34:41.57
|
||||||
Hello Easy C++ project!
|
NO
|
||||||
|
-----------------------------------------------
|
||||||
|
Process exited after 250 ms with return value 0
|
||||||
|
|
||||||
|
## z:\Chao\src\1658_alllike\test\in2.txt
|
||||||
|
2020/04/24 ÖÜÎå 12:34:41.57
|
||||||
|
1993+3991=5984
|
||||||
|
5984+4895=10879
|
||||||
|
10879+97801=108680
|
||||||
|
108680+86801=195481
|
||||||
|
195481+184591=380072
|
||||||
|
380072+270083=650155
|
||||||
|
650155+551056=1201211
|
||||||
|
1201211+1121021=2322232
|
||||||
|
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Process exited after 200 ms with return value 0
|
Process exited after 80 ms with return value 0
|
||||||
|
|
||||||
|
## z:\Chao\src\1658_alllike\test\in3.txt
|
||||||
|
2020/04/24 ÖÜÎå 12:34:41.57
|
||||||
|
32767+76723=109490
|
||||||
|
109490+94901=204391
|
||||||
|
204391+193402=397793
|
||||||
|
|
||||||
|
-----------------------------------------------
|
||||||
|
Process exited after 220 ms with return value 0
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user