分割一个数字并存储在int数组中
splitting a number and storing in int array
是否有一种方法来分割一个数字,并在一个int数组中存储数字?
我正在寻找一种从数字中删除一些数字的方法(用于可整除算法证明)。
例如,如果我有一个号码12345,我需要执行以下操作:
1234 - 5 = 1229
有办法做到这一点吗?
使用n % 10
获取最后一位数字,使用n / 10
获取其他数字。例如:5=12345%10,1234=12345/10。
将整数转换为数组:
int array[6];
int n = 123456;
for (int i = 5; i >= 0; i--) {
array[i] = n % 10;
n /= 10;
}
一般来说,在c++中首选vector
s,特别是在这种情况下,因为您可能事先不知道位数。
int n = 123456;
vector<int> v;
for(; n; n/=10)
v.push_back( n%10 );
则v
包含{6,5,4,3,2,1}
。您可以选择使用std::reverse
来反转它
我将用sudo代码给你一个答案。
int [] makeArrayFromInt (int input){
arr = new int [floor(log(input)/log(10)) + 1]
int index = 0
while(input>0){
arr[index]=input%10
input=input/10
index++
}
return arr
}
基本思想是使用mod 10来获得特定数位的值,然后除以10来得到下一位数字。重复这个过程,直到除以10得到零,因为这是当你达到你的数字的末尾。Floor(log(input)/log(10)) + 1是一个计算一个数有多少位的小技巧。
相关文章:
- 如何在cpp.中使用协议缓冲区存储大缓冲区/数组(char/int)
- 在c++中获取两个大int,并将它们存储在数组中
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 如果 x < 10,则添加前导 0 并将其存储为 int
- 如何读取 TXT 文件并仅将 int 存储在 C 中
- 如何在函数中将字符串和分数存储为(Int 或 float)
- 如何声明一个必须在C++中同时存储int和char值的2D数组
- 如果char可以在C++中存储数字,为什么我们需要int
- 如果我在 C++ 中为 int 提供双精度,输入缓冲区中存储了什么?
- 我应该使用无符号字符而不是 int 来存储永远不会大于 255 的值吗?
- 我正在编写一个代码来将 int 数组存储在文件中,然后用 c++ 检索它,但是检索第一项是假值,我该如何解决这个问题?
- unordered_set是否适合存储矢量<int>元素的数据结构?如果是这样,我将如何实现哈希函数?
- 什么是在C 中存储结果INT*的最佳数据类型
- char*中存储的返回int值(0-255)给出了负值
- 将字符指针按顺序存储在 map 中 std::map<char*, int> mymap。将其存储为字符或字符串不是一个选项
- 如何在文件中节省空间地存储和检索 std::vector<int> 值
- 将INT和STR输入并将它们存储到两个单独的列表中
- 如何在单个变量中同时存储 int 或字符串,而不会丢失它们的类型
- 在数组中存储 int 的各个数字
- 如何将 void 指针类型转换为 int 指针,然后在其中存储 int