1. 编写一个程序exp1-2.cpp,计算任一输入的正整数的各位数字之和,并分析算法的时间复杂度。
#include <iostream>
using namespace std;
int main()
{
int num,sum=0;
cout<<"请输入任意正整数:";
cin>>num;
while(num!=0)
{
sum+=num%10;
num/=10;
}
cout<<"正整数的各位数字之和为:"<<sum<<endl;
return 0;
}
2. 编写一个程序exp1-3.cpp,判断一个字符串是否为“回文”(顺读和倒读都一样的字符串称为“回文”),并分析算法的时间复杂度。
#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
bool f(char *s)
{
int i,j;
j=strlen(s);
j--;
for(i=0; i<j&&s[i]==s[j]; i++,j--);
if(i>=j)
return true;
return false;
}
int main()
{
char s[100];
cout<<"请输入一串字符串:";
gets(s);
if(f(s))
cout<<"该字符串是回文";
else
cout<<"该字符串不是回文";
}