您的位置:首页 > 理论基础 > 数据结构算法

数据结构第1章上机实验题

2016-09-04 15:33 281 查看
以下3题均采用多组输入:

1.1 输出所有小于等于n(n为一个大于2的正整数)的素数,每行输出10个,尽可能采用较优的算法

源代码:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
int i,j,k;
int num;
while(cin>>n)
{
num=0;
for(i=2;i<=n;i++)
{
k=sqrt(i);
for(j=2;j<=k;j++)
{
if(i%j==0)
{
break;
}
}
if(j>=k+1)
{
cout<<i;
num++;
if(num%10==0)
{
cout<<endl;
}
else
{
cout<<" ";
}
}
}
cout<<endl;
}
return 0;
}
程序截图:



1.2 计算任一输入的正整数的各位数字之和

源代码:(暂不考虑超出int精度范围的情况)

#include <iostream>
using namespace std;
int main()
{
int n;
int sum;
while(cin>>n)
{
sum=0;
while(n>0) //分离各位数
{
sum+=n%10;
n/=10;
}
cout<<sum<<endl;
}
return 0;
}
程序截图:



1.3 判断一个字符串是否是“回文”

源代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
char str[100000];
int i,j;
int flag;
while(gets(str))
{
i=0,j=strlen(str)-1;
flag=0;
while(i<j) //字符遍历
{
if(str[i]!=str[j])
{
cout<<"no"<<endl;
flag++;
break;
}
i++,j--;
}
if(flag==0)
{
cout<<"yes"<<endl;
}
}
return 0;
}
程序截图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: