刷题记录20
1字符逆序
题目描述
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。
输入
输入包括一行。 第一行输入的字符串。
输出
输出转换好的逆序字符串。
样例输入
I am a student
样例输出
tneduts a ma I
代码:
方法1:
#include<iostream.h>
#include<string.h>
using namespace std;
int main()
{
int i,len=0;
char str[100];
gets(str);
len=strlen(str);
for(i=len-1;i>=0;i--)
{
putchar(str[i]);
}
cout<<endl;
return 0;
}
方法2:
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i,len=0,t;
gets(str);
len=strlen(str);
for(i=0;i<len/2;i++)
{
t=str[i];
str[i]=str[len-i-1]; //定义一个变量来交换它们的值
str[len-i-1]=t;
}
puts(str);
return 0;
}
解题思路:
利用了string.h中的strlen()函数来求字符数组的长度
strlen()函数功能:计算字符串a的长度 ,返回a的长度,不包括结束符
2求N以内的素数
题目描述
用筛法求之N内的素数。
输入
N
输出
0~N的素数
代码:
#include<iostream>
using namespace std;
int main()
{
int i,j,n;
cin>>n;
for(i=1;i<=n;i++)//i用来遍历N以内的数
{
if(i==2)//最小的素数是2
cout<<i<<endl;
for(j=2;j<i;j++)//j为除了1和它本身之外的数
{
if(i%j==0)
break;
else if(j=i-1)//如果j=i-1,说明是素数
cout<<i<<endl;
}
}
return 0;
}
解题思路:
素数只能被1和它本身除尽,遍历从2到N-1,如果不能出尽则输出。