请问这个题目怎么解,有大神吗

圆周率问题图片

要不截个图吧,这么看实在是看不清

这张应该可以看的清楚吧图片

不知道这种写法可不可以,反正结果是对的。。。

 #include <iostream>

using namespace std;

int main()
{
    //下面这一长串是圆周率的字符串 一共1000位
    string PI="";
    PI+="3.14159265358979323846264338327950288419716939937510";
    PI+="58209749445923078164062862089986280348253421170679";
    PI+="82148086513282306647093844609550582231725359408128";
    PI+="48111745028410270193852110555964462294895493038196";
    PI+="44288109756659334461284756482337867831652712019091";
    PI+="45648566923460348610454326648213393607260249141273";
    PI+="72458700660631558817488152092096282925409171536436";
    PI+="78925903600113305305488204665213841469519415116094";
    PI+="33057270365759591953092186117381932611793105118548";
    PI+="07446237996274956735188575272489122793818301194912";
    PI+="98336733624406566430860213949463952247371907021798";
    PI+="60943702770539217176293176752384674818467669405132";
    PI+="00056812714526356082778577134275778960917363717872";
    PI+="14684409012249534301465495853710507922796892589235";
    PI+="42019956112129021960864034418159813629774771309960";
    PI+="51870721134999999837297804995105973173281609631859";
    PI+="50244594553469083026425223082533446850352619311881";
    PI+="71010003137838752886587533208381420617177669147303";
    PI+="59825349042875546873115956286388235378759375195778";
    PI+="18577805321712268066130019278766111959092164201989";

    //输入
    int m=0;
    int n=0;
    while ((m>=n)||(m>=1000)||(n>1000))//对输入的m n的值做限定
    {
        cout<<"请输入两个数:(第一个小于第二个且第二个数不大于1000)"<<endl;
        cin>>m>>n;
    }
    //输出
    int startNumber=m+1;//加1是为了除去 3. 这两位
    int endNumber=n+2;//加2是因为使用substr函数的原因,你改成加1试试就知道了
    string outputStr=PI.substr(startNumber,endNumber-startNumber);//取出对应的子字符串
    cout<<outputStr.c_str()<<endl;//打印到屏幕上

    system("pause");
    return 0;
}

运行结果:
10 20的
图片说明
1 1000的
图片说明
如果想要多次输入的话,加个循环就行了。