Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法从非常简单的函数中获得正确答案_C++ - Fatal编程技术网

C++ 无法从非常简单的函数中获得正确答案

C++ 无法从非常简单的函数中获得正确答案,c++,C++,好吧,我是个十足的傻瓜。我正在尝试项目Euler,以更好地在C++。我在做问题1,但没有得到正确的输出。当我运行它时,我得到numTotalTree是-3,numTotalFive是-5,numTotal是0。我的函数有点问题,但我不确定我做错了什么。我该如何解决这个问题 #include <iostream> using namespace std; int main() { int amount = 1000; int numOfThree = amount /

好吧,我是个十足的傻瓜。我正在尝试项目Euler,以更好地在C++。我在做问题1,但没有得到正确的输出。当我运行它时,我得到numTotalTree是-3,numTotalFive是-5,numTotal是0。我的函数有点问题,但我不确定我做错了什么。我该如何解决这个问题

#include <iostream>
using namespace std;

int main()
{
    int amount = 1000;
    int numOfThree = amount / 3;
    int numOfFive = amount / 5;
    int numTotalThree = 0;
    int numTotalFive = 0;
    int numTotal = numTotalThree + numTotalFive;

    cout << numOfThree << endl;
    cout << numOfFive << endl;

    for(int i = 0; i <= numOfThree; i++)
    {
        numTotalThree += numTotalThree + 3;
    }

    cout << numTotalThree << endl;

    for(int i = 0; i <= numOfFive; i++)
    {
        numTotalFive += numTotalFive + 5;
    }

    cout << numTotalFive << endl;

    cout << numTotal << endl;

    system("PAUSE");
    return 0;
}
#包括
使用名称空间std;
int main()
{
整数金额=1000;
int numOfThree=金额/3;
int numofeive=金额/5;
int numTotalThree=0;
int numTotalFive=0;
int numTotal=numtotaltree+numTotalFive;

coutC++不是一种函数式语言,它是过程性的——这意味着你必须按顺序做事。当你这样做时:

int numTotalFive = 0;
int numTotal = numTotalThree + numTotalFive;

更新NumtotalTree和numTotalFive时,它将立即执行,不再执行。如果您不再触摸它,则将输出该值。

C++不是函数式语言,它是程序性的,这意味着您必须按顺序执行操作。执行此操作时:

int numTotalFive = 0;
int numTotal = numTotalThree + numTotalFive;

更新NumtotalTree和numTotalFive时,它将立即执行,不再执行。如果您不再触摸它,则将输出该值。

C++不是函数式语言,它是程序性的,这意味着您必须按顺序执行操作。执行此操作时:

int numTotalFive = 0;
int numTotal = numTotalThree + numTotalFive;

更新NumtotalTree和numTotalFive时,它将立即执行,不再执行。如果您不再触摸它,则将输出该值。

C++不是函数式语言,它是程序性的,这意味着您必须按顺序执行操作。执行此操作时:

int numTotalFive = 0;
int numTotal = numTotalThree + numTotalFive;

更新NumtotalTree和numTotalFive时,它会立即执行,不会再次执行。如果您不再触摸它,将输出该值。

下面是一个想法:

通过检查余数%==0来检查有多少个数可以被三整除。对五个数做同样的操作,然后对两个数都做同样的操作。从前两个数的总和中减去可以被二者整除的数,以得到准确的答案

int divisibleByThree=0; 
int divisibleByFive=0;
int divisibleByBoth=0;
int total;

for(int i=0; i<1000; i++)
{
    if (i%3==0)
        divisibleByThree++;
    if (i%5==0)
        divisibleByFive++;
    if (i%5==0) && i%5==0)
        divisibleByBoth++;
}

    total = divisibleByThree + divisibleByFive - divisibleByBoth;
    return total;
int-divisibleByThree=0;
int divisibleByFive=0;
int divisibleByBoth=0;
整数合计;

对于(int i=0;i这里有一个想法:

通过检查余数%==0来检查有多少个数可以被三整除。对五个数做同样的操作,然后对两个数都做同样的操作。从前两个数的总和中减去可以被二者整除的数,以得到准确的答案

int divisibleByThree=0; 
int divisibleByFive=0;
int divisibleByBoth=0;
int total;

for(int i=0; i<1000; i++)
{
    if (i%3==0)
        divisibleByThree++;
    if (i%5==0)
        divisibleByFive++;
    if (i%5==0) && i%5==0)
        divisibleByBoth++;
}

    total = divisibleByThree + divisibleByFive - divisibleByBoth;
    return total;
int-divisibleByThree=0;
int divisibleByFive=0;
int divisibleByBoth=0;
整数合计;

对于(int i=0;i这里有一个想法:

通过检查余数%==0来检查有多少个数可以被三整除。对五个数做同样的操作,然后对两个数都做同样的操作。从前两个数的总和中减去可以被二者整除的数,以得到准确的答案

int divisibleByThree=0; 
int divisibleByFive=0;
int divisibleByBoth=0;
int total;

for(int i=0; i<1000; i++)
{
    if (i%3==0)
        divisibleByThree++;
    if (i%5==0)
        divisibleByFive++;
    if (i%5==0) && i%5==0)
        divisibleByBoth++;
}

    total = divisibleByThree + divisibleByFive - divisibleByBoth;
    return total;
int-divisibleByThree=0;
int divisibleByFive=0;
int divisibleByBoth=0;
整数合计;

对于(int i=0;i这里有一个想法:

通过检查余数%==0来检查有多少个数可以被三整除。对五个数做同样的操作,然后对两个数都做同样的操作。从前两个数的总和中减去可以被二者整除的数,以得到准确的答案

int divisibleByThree=0; 
int divisibleByFive=0;
int divisibleByBoth=0;
int total;

for(int i=0; i<1000; i++)
{
    if (i%3==0)
        divisibleByThree++;
    if (i%5==0)
        divisibleByFive++;
    if (i%5==0) && i%5==0)
        divisibleByBoth++;
}

    total = divisibleByThree + divisibleByFive - divisibleByBoth;
    return total;
int-divisibleByThree=0;
int divisibleByFive=0;
int divisibleByBoth=0;
整数合计;

对于(int i=0;i我想你需要这样的东西:

int sum = 0;

for (int i =0; i < 1000; ++i){
    if(i % 3 == 0 || i % 5 == 0){
        sum += i;
    }
}
int和=0;
对于(int i=0;i<1000;++i){
如果(i%3==0 | | i%5==0){
总和+=i;
}
}

稍后编辑:我不知道为什么要计算小于1000的可被3或5整除的数字。问题(欧拉计划-问题1)要求计算所有小于1000的可被3或5整除的数字的总和。

我想你需要这样的东西:

int sum = 0;

for (int i =0; i < 1000; ++i){
    if(i % 3 == 0 || i % 5 == 0){
        sum += i;
    }
}
int和=0;
对于(int i=0;i<1000;++i){
如果(i%3==0 | | i%5==0){
总和+=i;
}
}

稍后编辑:我不知道为什么要计算小于1000的可被3或5整除的数字。问题(欧拉计划-问题1)要求计算所有小于1000的可被3或5整除的数字的总和。

我想你需要这样的东西:

int sum = 0;

for (int i =0; i < 1000; ++i){
    if(i % 3 == 0 || i % 5 == 0){
        sum += i;
    }
}
int和=0;
对于(int i=0;i<1000;++i){
如果(i%3==0 | | i%5==0){
总和+=i;
}
}

稍后编辑:我不知道为什么要计算小于1000的可被3或5整除的数字。问题(欧拉计划-问题1)要求计算所有小于1000的可被3或5整除的数字的总和。

我想你需要这样的东西:

int sum = 0;

for (int i =0; i < 1000; ++i){
    if(i % 3 == 0 || i % 5 == 0){
        sum += i;
    }
}
int和=0;
对于(int i=0;i<1000;++i){
如果(i%3==0 | | i%5==0){
总和+=i;
}
}
稍后编辑:我不知道您为什么要计算小于1000的可被3或5整除的数字。问题(欧拉计划-问题1)要求计算所有小于1000的可被3或5整除的数字的总和。

[0333]中
n
numTotalTree
溢出

  • 3/2*(-2+2n)
类似地,[0200]中的
n
numTotalFive

  • 5/2*(-2+2n)
所以你看到的是负值

正如其他人所建议的,您可能需要重新审视您的逻辑

您只需将[01000]中可被3或5整除的数字相加即可

size_t total =0;
for (size_t x =0; x < 1000; x++){
    if( (x % 3 == 0) || (x % 5 == 0) ){
        total += x;
    }
}
size\u t总计=0;
用于(大小x=0;x<1000;x++){
如果((x%3==0)| |(x%5==0)){
总数+=x;
}
}
您的

[0333]中
n
numTotalTree
溢出

  • 3/2*(-2+2n)
类似地,[0200]中的
n
numTotalFive

  • 5/2*(-2+2n)
所以你看到的是负值

正如其他人所建议的,您可能需要重新审视您的逻辑

您只需将[01000]中可被3或5整除的数字相加即可

size_t total =0;
for (size_t x =0; x < 1000; x++){
    if( (x % 3 == 0) || (x % 5 == 0) ){
        total += x;
    }
}
size\u t总计=0;
用于(大小x=0;x<1000;x++){
如果((x%3==0)| |(x%5==0)){
总数+=x;
}
}
您的