题一:从键盘上输入一个整式数N,设计程序,输入大于N的最小回文数。
// aa.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
bool isHuiWen(int N)
{
char c[60];
_itoa_s(N,c,10);
string ss(c);
int i=0;
int j=ss.length()-1;
if(j==0)
{
return true;
}
while(i<j)
{
if(ss.at(i)!=ss.at(j))
{
return false;
}
i++;
j--;
}
return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"请输入一个正整数:"<<endl;
int N;
cin>>N;
for(int i=N+1;i<=INT_MAX;i++)
{
if(isHuiWen(i))
{
cout<<i<<endl;
break;
}
}
system("pause");
return 0;
}
题二:从键盘上输入一段字符串,取出其中最短的数字串。例如输入的字符串为:abcd123efg4567ha32975e,则输出为:123,因为123,4567,32975中最短的为123.
// aa.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
string minstr(char* s)
{
char ss[60];
memset(ss,0,60);
int i=0;
string str1(s);
for(i=0;i<str1.length();i++)
{
if(s[i]>='0'&&s[i]<='9')
ss[i]=s[i];
}
char* p=ss;
int len=999;
string minstr(60,'0'); //精华部分
for(i=0;i<str1.length();i++)
{
string str2(p);
len=str2.length();
if(len!=0)
{
if(len<minstr.length()) //精华部分
minstr=str2;
p=p+len;
i=i-1+len;
}
else
p++;
}
return minstr;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"请输入一个字符串:"<<endl;
char s[60];
cin>>s;
string str=minstr(s);
cout<<str<<endl;
system("pause");
return 0;
}
题三:分别从键盘上输入两段字符串str1,str2,判断str2是否为str1友串。
友串的定义:如果字符串str1通过轮转字符,能得到包含str2的字符串,则称str2是str1的友串。如str1="abcde",,str2="dea",将str1中a移至末位,则包含str2,所以str2是str1的友串。
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
bool isfriend(char* s,char* ss)
{
string str(s);
int len=str.length();
for(int i=0;i<len;i++)
{
if(str.find(ss)!=string::npos)
{
return true;
}
char ch=str.at(0);
string substr=str.substr(1);
str=substr.append(1,ch);
}
return false;
}
int main()
{
cout<<"请输入字符串1:"<<endl;
char s[60];
cin>>s;
cout<<"请输入字符串2:"<<endl;
char ss[60];
cin>>ss;
cout<<isfriend(s,ss)<<endl;
system("pause");
return 0;
}
改进版本:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
bool isfriend(string str1,string str2)
{
string str=str1;
int len=str1.length();
for(int i=0;i<len;i++)
{
if(str.find(str2)!=string::npos)
{
return true;
}
char ch=str.at(0);
string substr=str.substr(1);
str=substr.append(1,ch);
}
return false;
}
int main()
{
string str1,str2;
cout<<"请输入字符串1:"<<endl;
cin>>str1;
cout<<"请输入字符串2:"<<endl;
cin>>str2;
cout<<isfriend(str1,str2)<<endl;
system("pause");
return 0;
}