📅  最后修改于: 2023-12-03 15:36:18.310000             🧑  作者: Mango
在该文章中,我们将学习如何在 C++ 中从数字中删除指定的数字。我们会介绍两种方法来实现这个功能。
思路: 将数字转换为字符串,然后遍历字符串,删除指定的数字,最后再将处理后的字符串转换回数字。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int num = 1234567;
int del_num = 5;
string str_num = to_string(num);
string str_res = "";
for(int i=0; i<str_num.length(); i++)
{
if(str_num[i] != del_num+'0')
str_res += str_num[i];
}
int res = stoi(str_res);
cout << res << endl;
return 0;
}
num
赋值为 1234567
,需要删除数字 5
。to_string
函数将数字转换为字符串。str_res
中。stoi
函数将结果字符串转换回数字,并输出结果。注意:要将字符类型的数字转换为整型数字,需要将字符型数字加上字符'0',才能得到对应的整型数字,
'5'+'0'=53
,53-48=5
,真实的数字是正确的数字5。
思路:在每一轮取余运算之后,将值乘以10,然后将该数字除以10。如果在某一轮取余运算中,得到的余数不等于指定的数字,我们就保存该余数,并将其加入结果数字中。
#include <iostream>
using namespace std;
int main()
{
int num = 1234567;
int del_num = 5;
int res = 0;
int i = 1;
while(num)
{
int r = num % 10;
num /= 10;
if (r != del_num)
res += r * i, i *= 10;
}
cout << res << endl;
return 0;
}
num
赋值为 1234567
,需要删除数字 5
。(num % 10)
取余运算,求出数字 num
的个位数,并将余数保存在变量 r
中。然后,使用 (num / 10)
除法运算来将 num
等于其自身除以10的值。r
不等于删除数字 del_num
,那么我们将 r
乘以 i
,并将 i
设置为10的下一个幂次方。在本文中,我们演示了两种以 C++ 实现从数字中删除指定数字的方法。两个方法都可以提供有效的解决方案。 当选择哪种方法时,应考虑两种方法的要素,如数字大小、删除数字的数量以及其他操作的类型。