求以下问题的完整代码,要求使用c+家面向对象的程序设计并且使用构造函数
最简单的方法就是从m往后遍历。
运行结果:
代码:
#include <iostream>
using namespace std;
class Huiwen
{
private:
int m, k;
public:
Huiwen(int _m,int _k):m(_m),k(_k){}
//判断一个数是否是回文数
int ishuiwen(int n)
{
int t = 0;
int p = n;
while (p)
{
t = t * 10 + p % 10;
p /= 10;
}
if (n == t)
return 1; //是回文
else
return 0; //不是回文
}
void show()
{
int cnt = 0;
for (int i = m+1;cnt < k; i++) //题目要求大于m
{
if (ishuiwen(i))
{
if (cnt == 0)
cout << i;
else
cout << " " << i;
cnt++;
}
}
cout << endl;
}
};
int main()
{
int N, m, k;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> m >> k;
Huiwen hw(m, k);
hw.show();
}
return 0;
}
定义一个类,输入一组数据,函数实现一组回文生成
#include <iostream>
using namespace std;
class huiw
{
private:
int *p;
int n;
bool hw(int n)
{
int t = n;
int m = 0;
while(n>0)
{
m = m*10+n%10;
n/=10;
}
if(t == m)
return true;
return false;
}
public:
huiw() {p=NULL;n=0;}
huiw(int k,int n) : n(n)
{
p = new int[n];
int i=0;
while(i<n)
{
k++;
if(hw(k))
{
p[i] = k;
i++;
}
}
}
void print()
{
if(p!=NULL)
{
for(int i=0;i<n;i++)
cout<<p[i]<<" ";
}
}
~huiw()
{
if(p != NULL)
delete []p;
}
};
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int k,m;
cin>>k>>m;
huiw p(k,m);
p.print();
cout<<endl;
}
}
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
class MyClass {
public:
bool is_palindrome(int n) {
std::string s = std::to_string(n);
for (int i = 0; i < s.length() / 2; i++) {
if (s[i] != s[s.length() - i - 1]) {
return false;
}
}
return true;
}
};
int main() {
MyClass mc;
int n;
std::cin >> n;
for (int i = 0; i < n; i++) {
int m, k;
std::cin >> m >> k;
std::vector<int> palindromes;
for (int j = m + 1; palindromes.size() < k; j++) {
if (mc.is_palindrome(j)) {
palindromes.push_back(j);
}
}
for (int j = 0; j < k; j++) {
std::cout << palindromes[j] << " ";
}
std::cout << std::endl;
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!