C++ 如何删除某个特定数字之前的所有数字
在查找特定数字之前,如何删除数字中的所有数字。 假设我想得到数字1(包括1)之后的所有数字 示例:3543125-我想得到数字125 我开始这样做:C++ 如何删除某个特定数字之前的所有数字,c++,C++,在查找特定数字之前,如何删除数字中的所有数字。 假设我想得到数字1(包括1)之后的所有数字 示例:3543125-我想得到数字125 我开始这样做: int n, result; cout << "Please enter number: "; cin >> n; while (n>0) { n = n % 10; } intn,结果; cout>n; 而(n>0) { n=n%10; } 获取最后一个数字
int n, result;
cout << "Please enter number: ";
cin >> n;
while (n>0)
{
n = n % 10;
}
intn,结果;
cout>n;
而(n>0)
{
n=n%10;
}
获取最后一个数字,但我不知道如何将其保存在变量中,然后将第二个数字添加到变量中
有人能解释一下,我怎么解决这个问题吗?试试这个。(太简单了:-)
#包括
int n,a,结果=0;
cout>n;
cout>a;
int b=a;
而(b>0){
结果+=n%10*功率(10,a-b-);
n=n%10;
}
std::cout这是一个算法,我没有测试它,但它{仅适用于循环和if}
int num = 3543125;
int temp = 0;
do //get the result in reverse number
{
temp += num % 10;
temp *= 10;
num /= 10;
if (num % 10 == 1)
temp += 1;
} while (num % 10 != 1);
int result = 0;
while (temp > 0) //reverse the temp number to result
{
result = result * 10 + (temp % 10);
temp = temp / 10;
}
cout << result; // = 125
int num=3543125;
内部温度=0;
是否//以相反的数字获取结果
{
温度+=数值%10;
温度*=10;
num/=10;
如果(数值%10==1)
温度+=1;
}而(数值%10!=1);
int结果=0;
while(temp>0)//将temp编号反转为result
{
结果=结果*10+(温度%10);
温度=温度/10;
}
下面的一切,包括1
都是n%=1000代码>。结果是n
的值为125
。不需要循环。那么,你到底想解决什么问题呢?@WhozCraig这不能正常工作,它必须用循环完成,如果假设你输入314,你将得到相同的输出,但不是14。你确定数字中有1吗?或者您需要检查它?我只需要知道数字而不使用string,然后使用std::to_string将数字转换为字符串。这样可以正确地切断最后n个数字(尽管n%pow(10,a)
在一行中也这样做),但是它不能找到一个数字并确定要剪切多少个数字。不要对整数值使用pow
pow
是一个浮点函数。@PaulMcKenzie:捕捉得好。还需要编写一个ipow
函数。
int num = 3543125;
int temp = 0;
do //get the result in reverse number
{
temp += num % 10;
temp *= 10;
num /= 10;
if (num % 10 == 1)
temp += 1;
} while (num % 10 != 1);
int result = 0;
while (temp > 0) //reverse the temp number to result
{
result = result * 10 + (temp % 10);
temp = temp / 10;
}
cout << result; // = 125