Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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++_Windows_Codeblocks - Fatal编程技术网

C++ 如何将一个大数字存储在数组中的各个部分,然后将数字相加?

C++ 如何将一个大数字存储在数组中的各个部分,然后将数字相加?,c++,windows,codeblocks,C++,Windows,Codeblocks,假设用户在下面输入一个数字: 54353325421435 我希望下面的变量存储上面数字的一部分 例如 然后将数字相加并将其存储为变量,如下所示: 例如 对不起,伙计们!我不知道,如何更好地解释这一点!我希望你能理解我的问题。 如果您想要上面提到的编号的数字之和,请阅读 int number,digit,sum=0; while(number!=0) { digit=number%10; sum=s+digit; number=number/10; } 此代码段将计算编号的数字之和 i

假设用户在下面输入一个数字:

54353325421435
我希望下面的变量存储上面数字的一部分

例如

然后将数字相加并将其存储为变量,如下所示:

例如

对不起,伙计们!我不知道,如何更好地解释这一点!我希望你能理解我的问题。
如果您想要上面提到的编号的数字之和,请阅读

int number,digit,sum=0;
while(number!=0)
{
 digit=number%10;
 sum=s+digit;
 number=number/10;
}
此代码段将计算编号的数字之和

if number=123;
it will calculate sum=3+2+1=6;
问题 您想将整数除以3个不同的部分。基本上,你有一个数字
54353325421435
,你想把它分成:

part[0]=54353
part[1]=32
part[2]=5421435
然后把它们加起来

解决方案 一个
for
循环将做得最好。如果您不知道什么是for循环,那么它基本上是一种具有定义的起点和终点的迭代方法。例如,下面是一个简单的迭代,它将“hello world”打印两次:

然后你就有了一系列的零件,正如你上面提到的:

int part[3]
现在可以做的是,循环使用
NUM
。让我来告诉你如何做第一个:

int access_digits(const unsigned long long int n, int index)
{
    int digit_array[64] = {0};

    unsigned long long digits = 0, digit, number = n;
    while (number) {
        digit = number % 10;
        number /= 10;
        digit_array[digits] = digit;
        digits++;
    }

    return digit_array[digits - index - 1];
}

 std::string digits;
 for(int i=0; i<=4; i++)
 {
    digits.append(std::to_string(access_digits(NUM,i)));
 }
 int digit_int = std::stoi( digits );
运动 现在编辑此内容,将练习部分下面的
部分[1]
部分[2]
包括在内

工具书类

术语汇编 对于循环:

执行
init语句
一次,然后重复执行
语句
迭代表达式
,直到
条件
的值变为false。测试在每次迭代之前进行

语法

形式语法:

非正式语法:


你有没有阅读过4loops,以及每个元素应该存储多少,你能告诉我们你尝试了什么吗?@amanuel2我不知道如何制作这个程序!我是C++初学者,你唯一的办法就是先学习,而不是给你答案!这是一个很好的教程。。在C++书籍上是很棒的指南。我基本上都知道!无论如何,谢谢你的网站!也你们为什么这么做!投票否决我的页面而不给出理由!!这样我下次可以提高!!!谢谢我还提出了另一个更好的方法,但这仍然是正确的!谢谢alot@Aravind.KEN编辑我的问题,使其包含您的方法!为了未来的读者!
for(int i=0; i<2; i++)
   cout << "Hello World" << endl;
 const unsigned long long NUM = 54353325421435; //Make it a constant to not change it
int part[3]
int access_digits(const unsigned long long int n, int index)
{
    int digit_array[64] = {0};

    unsigned long long digits = 0, digit, number = n;
    while (number) {
        digit = number % 10;
        number /= 10;
        digit_array[digits] = digit;
        digits++;
    }

    return digit_array[digits - index - 1];
}

 std::string digits;
 for(int i=0; i<=4; i++)
 {
    digits.append(std::to_string(access_digits(NUM,i)));
 }
 int digit_int = std::stoi( digits );
  int accum=0;
  for(int i=0; i<4; i++)
  {
    accum += access_digits(digit_int,i);
  }
 
attr(optional) for ( init-statement condition(optional) ; iteration_expression(optional) ) statement
  attr(optional) for ( declaration-or-expression(optional) ; declaration-or-expression(optional) ; expression(optional) ) statement