如何在数组中存储一个大数字,然后将这些数字相加
How to store a big number in parts in an array and then add up the digits?
假设用户在下面输入一个数字:
54353325421435
我希望下面的变量存储上面数字的一部分
。
int part[3]
part[0]=54353
part[1]=32
part[2]=5421435
,然后将数字相加并存储在变量中,如下所示:
。
int sum[3]
sum[0]=5+4+3+5+3 //sum up part[0]
sum[1]=3+2 //sum up part[1]
sum[2]=5+4+2+1+4+3+5 //sum up part[2]
对不起人!我不知道该怎么解释才好!我希望你能理解我的问题。感谢阅读
问题
你想把整数分成3个不同的部分。基本上,你有一个数字54353325421435
,你想把它分成:
part[0]=54353
part[1]=32
part[2]=5421435
然后加起来。
解决方案 for
环是最好的。如果你不知道for
循环是什么,基本上它是一种具有定义的起点和终点的迭代方法。例如,下面是一个简单的迭代,打印出"hello world"2倍:
for(int i=0; i<2; i++)
cout << "Hello World" << endl;
您可以在这里了解更多关于for
循环的信息。在你的例子中,你要做的是遍历这个。基本上,首先你把变量存储在一个整数中。(我相信你能做到。)
const unsigned long long NUM = 54353325421435; //Make it a constant to not change it
然后是前面提到的零件数组:
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 );
您可以在上面看到,首先有一个access_digits
函数。您可以使用该函数按索引访问数字。(功劳归于Slayther。)无论如何,在那之后,你可以看到我从0到4循环得到part[0]
的前5位数字。前5位是54353
。
最后你想把它们加起来。这很简单。只需循环这些数字,并使用累加器将它们相加,如下所示:
int accum=0;
for(int i=0; i<4; i++)
{
accum += access_digits(digit_int,i);
}
锻炼现在编辑它,包括part[1]
和part[2]
下面的练习部分。
遍历C
中的整数青少年领地聊天
for循环std:: string>
符串:添加词汇表为循环:
执行一次
init-statement
,然后重复执行statement
和iteration_expression
,直到condition
的值变为false。测试在每次迭代之前进行。
语法
正式语法: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
如果您想要的数字的和。如你上文所述,
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;
相关文章:
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 在C++中编程,将 3 个数字发送到一个函数,然后计算这 3 个数字的平均函数
- 编写一个程序,提示用户输入一个整数,然后输出数字的单个数字和数字的总和
- 修改的选择排序,选择最大的数字,然后交换到最后
- 检查字符串是否是数字,然后将该数字转换为 int?
- 如果用户想要输入 x 数量的数字,我如何设法跟踪它然后结束程序?
- 请说明这种怪异的行为C 乘法数字,然后说明mod
- 从for循环中给出最小数字,然后使开关无限
- C++ 将文件中的数字读取到数组中,然后将其打印到其他数组中
- c++ 输入一个数字来确定其他数字,然后比较它们
- 如何从用户那里获得输入字符串而不是示例,然后计算空格、标点符号、数字和字母.C++
- 如何在数组中的范围内添加所有数字?然后找到该范围的平均值
- 使用C - CIN获取几个整数数字,然后将它们放入数组中
- 用getline在字符串中从文件中读取,然后将数字从int数组中的字符串划分
- 从txt文件中读取数字,添加一些数字,然后在c ++中将其重写为其他文件
- 随机选择一个 0 到 8 之间的数字,直到没有数字可以选择,然后重新开始
- 将一个数字的一个数字与其当前位置相乘,然后使用递归将其和其他数字相加
- QString::compare() vs 将 QString 转换为数字然后进行比较
- 在C++中,我需要创建一个程序,该程序在输入某个数字时循环并停止,然后显示最大值和最小值
- 在C++的文本文件中读取数字,然后读取字母