1.判断素数
bool isprime(int n)
{
if(n<2)
return false;
for(int i=2;i*i<=n;i++)
//for(int int i=2;i<sqrt(n)+1;i++)
if(n%i==0)
return false;
return true;
}
这个代码有问题,对于2的判断有错误。
我又找了个代码:
bool isPrime( int num )
{
if(num ==2|| num==3 )
return 1 ;
if(num %6!= 1&&num %6!= 5)
return 0 ;
int tmp =sqrt( num);
for(int i= 5;i <=tmp; i+=6 )
if(num %i== 0||num %(i+ 2)==0 )
return 0 ;
return 1 ;
}
2.解决运行超时问题
(1)把cin换为scanf();
把cout换为printf();
(2)在输入之前加上std::ios::sync_with_stdio(false);语句
方法(1)和方法(2)不能同时使用。
3.大写字母转化为小写字母
string func(string s)
{
for(int i=0;i<s.length();i++)
if(s[i]>='A'&&s[i]<='Z')
s[i]+=32;
return s;
}
在这里补充几个常见的ASCII码值
A = 65
a = 97
0表示空操作
10表示换行
13表示回车
32表示空格
48~57表示‘0’ ~ ‘9’
65~90表示‘A’ ~ ‘Z’
97~122表示‘a’ ~ ‘z’
4.尽量

本文介绍了PAT乙级考试中遇到的一些编程挑战,包括如何判断素数、避免运行超时的策略、大写字母转小写字母的ASCII码应用,以及减少中间变量和处理精度问题的方法。提供了C语言和C++的解决方案,并强调了两者之间的差异。
最低0.47元/天 解锁文章
3902

被折叠的 条评论
为什么被折叠?



