C ++:一些输入和输出以及总和的问题

时间:2018-07-07 10:16:33

标签: c++

那么,又是我。 在过去的几周里,我已经解决了很多与总和和数字有关的问题,并且到了可以轻松解决它们的地步。 但是我发现了一个我无法解决的问题,所以我来这里问你们是否有空闲时间来帮助我。 我对此非常感谢。 因此,问题是我有一个数字n和一个数字m,有2个和,所有小于或等于n的数字之和,以及所有小于或等于m的数字之和。 有一个变量S,它们是这些和之间的差,但是S是从.in文件中获得的。 问题是我必须在.in文件中键入S的值,并编写代码以使我在.out文件中获得n的所有值和m的所有值。 例如,如果我在.in文件中放入10,我必须在.out文件中得到n:10,m:9,n:4,m:0。

我做了这样的事情,但这是错误的,因为我只得到n和m的和,但我没有n和m。

#include <iostream>
#include <cmath>
#include <fstream>

using namespace std;

int main()
{

ifstream inFile;

inFile.open("s2.in");

int S;

inFile >> S;

int n;
int m;

int Sgn = 0;

int Sgm = 0;

int c = 1;
int r = 1;

//Sum n
for ( int i = 1; i <= n; i++ ){
    Sgn += c;
    c += r;
}

//Sum m
for ( int i = 1; i <= m; i++ ){
    Sgm += c;
    c += r;
}

S = Sgn - Sgm;

ofstream out("s2.out");
out << "\n n: " << n << "\n m: " << m << endl;

}

且1≤S≤2.000.000.000; n必须是> m;

所以我可以做这样的事情:

if ( n > m ){
   //Sum n
for ( int i = 1; i <= n; i++ ){
    Sgn += c;
    c += r;
}

//Sum m
for ( int i = 1; i <= m; i++ ){
    Sgm += c;
    c += r;
}

S = Sgn - Sgm;
}

例如,如果n:10和m:9。它将是(1 + 2 + ... + 10)-(1 + 2 + ... + 9)= 10 并且如果n:4和m:0。它将是(1 + 2 + 3 + 4)-0 = 10

0 个答案:

没有答案