做题处处碰壁,只做对了几道简单的题
斐波那契的整除
这道题直接求值再判断肯定是不对的,(因为出题者肯定不是这个意思),但是通过打表找规律会发现,如果n能被12整除,那么f(n)就一定能被12整除;如果n能被4整除,那么f(n)就能被3整除;如果n能被6整除,那么f(n)就能被8整除,也就能被4整除了
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n;
while(cin>>n)
{
if(n%12==0) cout<<"YES"<<endl;
else
{
if(n%4==0) cout<<"3"<<endl;
else if(n%6==0) cout<<"4"<<endl;
else cout<<"NO"<<endl;
}
}
return 0;
}
回文字符串
这题想法就简单了,把原字符串调转过来,如果与原来的一样,就是回文串
只不过这里用栈的方式,入栈出栈,正好就能实现目的
然后用字符串比较函数就可以比较了
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
stack<char> x;
int main()
{
int n,j;
char str1[110],str2[110];
while(scanf("%d",&n)!=EOF)
{
getchar();
for(int i=0;i<n;i++)
{
gets(str1);
int l=strlen(str1);
for(int t=0;t<l;t++)
{
x.push(str1[t]);
}
j=0;
while(!x.empty())
{
str2[j]=x.top();
x.pop();
j++;
}
str2[j]='\0';
if(strcmp(str1,str2)==0) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
return 0;
}