C++ 如何使用字符串数组分解数字的各个数字?
我必须写一个代码,它接受一个输入并打印出一个由素数组成的新数字,这些素数存在于原始数字中。 例如输入:453 产出:53 我已经编写了代码:C++ 如何使用字符串数组分解数字的各个数字?,c++,c++14,C++,C++14,我必须写一个代码,它接受一个输入并打印出一个由素数组成的新数字,这些素数存在于原始数字中。 例如输入:453 产出:53 我已经编写了代码: #include <iostream> #include<string> using namespace std; int main() { int number; int digit; int reverse = 0; int reverse1; int digit1; cout
#include <iostream>
#include<string>
using namespace std;
int main()
{
int number;
int digit;
int reverse = 0;
int reverse1;
int digit1;
cout<<"input a number"<<endl;
cin>>number;
int flag = 0;
while(number!=0)
{
digit = number % 10;
number = number / 10;
for(int i = 2; i < digit; i++)
{
if(digit % i == 0)
{
flag = 1;
}
}
if(flag == 0)
{
reverse = reverse * 10 + digit;
}
}
reverse1 = reverse;
while(reverse1 != 0)
{
digit1 = reverse1 % 10;
reverse1 = reverse1 / 10;
cout<<digit1;
}
cout<<endl;
}
#包括
#包括
使用名称空间std;
int main()
{
整数;
整数位数;
int反向=0;
int反转1;
int-digit1;
cout如果我理解您试图正确执行的操作(有效地从您的输入号码中删除除2、3、5和7以外的数字),那么这应该可以:
#include <algorithm>
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
const set<int> primes{2, 3, 5, 7};
string num;
cin >> num;
num.erase(remove_if(begin(num), end(num), [&](char c){ return !primes.count(c - '0'); }), end(num));
cout << num << '\n';
}
#includeFWIW,您需要为每个数字将标志重置为0
。否则,一旦设置为1
,其值不会更改。