小编Mat*_*729的帖子

std::_throw_out_of_range 不知从何而来

我是 C++ 的绝对初学者。字面上地。刚刚过去一周了。今天我正在编写一个程序来测试需要多少次迭代才能使某个数字成为回文。这是代码:

#include <iostream>
#include <string>
#include <algorithm>

/*  This program calculates the steps needed
    to make a certain number palindromic.
    It is designed to output the values for
    numbers 1 to 1000
*/
using namespace std;

class number
{
public:
    string value;
    void reverse();
};

void number::reverse()
{
    std::reverse(value.begin(),value.end());
}

void palindrome(number num)
{
    string n=num.value;
    number reversenum, numsum, numsumreverse;
    reversenum=num;
    reversenum.reverse();
    numsum.value=num.value;
    numsumreverse.value=numsum.value;
    numsumreverse.reverse();
    int i=0;
    while (numsum.value.compare(numsumreverse.value) !=0)
    {
        reversenum=num;
        reversenum.reverse();
        numsum.value=to_string(stoll(num.value,0,10)+stoll(reversenum.value,0,10));
        numsumreverse.value=numsum.value;
        numsumreverse.reverse();
        num.value=numsum.value;
        i++; …
Run Code Online (Sandbox Code Playgroud)

c++ discrete-mathematics palindrome stderr number-theory

5
推荐指数
1
解决办法
1540
查看次数