【问题标题】:c++ math assignment [closed]c ++数学作业[关闭]
【发布时间】:2012-10-15 06:22:08
【问题描述】:

任务是编写一个计算机程序,它将 1/3 与自身相加很多次,并将结果与​​将 1/3 乘以 1/3 与自身相加的次数进行比较。也可以用 ½ 做同样的事情。程序将执行两次该算术运算,一次使用单精度 (float),一次使用双精度 (double)。这两个都将在一个程序中。确保您使用的计数器类型适用于这些大数字。 您的程序将执行这些添加 109(10 亿)次。

#include<iostream>
#include<conio.h>
#include<math.h>
#include <limits>

using namespace std;
typedef std::numeric_limits< double > dbl;
int main()
{
    long size=1000000000;
    int count=0;
    long N=10;
    float nAdd=1;
    float nMul=1;

    cout.precision(dbl::digits10);
    cout<<"Iterration #\t\tAdd\t\t\tMul"<<endl;
    for(long  i=1; i<=size; i++)
    {
        nAdd+=1.0/3.0;
        nMul*=1.0/3.0;


        count++;
        if(count%N==0 && count!=0)
        {
            N*=10;
            cout<<i<<"\t\t"<<fixed <<nAdd<<"\t\t"<<fixed <<nMul<<endl;
        }
        if(count==size)
        {
            cout<<"Difference : "<<fixed <<nAdd<<" - "<<fixed <<nMul<<" = "<<fixed <<nAdd-nMul<<endl;
        }
    }
    getch();
    return 0;
}

所以我已经这样做了 我没有正确理解 我必须使用的数字将乘以 1/3 或 1/3 将添加到其中

你能给我解释一下吗? 非常感谢

【问题讨论】:

  • 您是否对“将 1/3 自身添加大量次数”部分有问题?
  • 这是一项作业。不应该在这个社区被问到。
  • 我不确定我是否理解您的问题,但现在您的代码将初始值 1000000000 乘以 1/3。作业不是这么说的。
  • 请尽量精简这个问题,并使其足够通用,以便您意识到问题出在哪里,或者实际上可以从社区获得帮助并提供可以帮助其他人的内容。
  • 您需要执行两个不同的操作: (a) 将 1/3 多次添加到自身(您已经这样做了,只是您的初始值是 1 而不是 1/ 3)。 (b) 将 1/3 乘以在 (a) 中将其添加到自身的次数。请注意,(b)不需要循环。这只是一个乘法。最后,比较 (a) 和 (b) 的结果,然后——我猜——打印比较的结果。您还需要使用 1/2 而不是 1/3 和 double 而不是 float 来完成所有这些操作。就是这样。

标签: c++ math


【解决方案1】:

将 1/3 多次添加到自身

这意味着你应该添加 ⅓ 一堆:⅓ + ⅓ + ⅓ + ⅓ + ...

然后,您应该将该计算的结果与 ⅓ 乘以您添加的次数的结果进行比较。因此,例如,如果将它加在一起四次(⅓ + ⅓ + ⅓ + ⅓),那么您将该结果与 ⅓ × 4 的结果进行比较。

数学上的结果应该是相同的,但是这个作业的目的是教你一些关于计算机如何执行计算的知识。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2022-06-13
    • 2022-01-12
    • 2011-11-12
    • 2010-12-06
    • 1970-01-01
    相关资源
    最近更新 更多