“九韶杯”河科院程序设计协会第一届程序设计竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)
此篇文章记录一些小但是非常致命的细节。
首先是第一题,6的个数。
问题是出在0%6也是0,没有直接让他个位数字直接等于6.
其次是字符串的输入问题
c++在输入时,如果在一行里面有空格,系统会默认这是两个字符串,这里的解决方式是,首先在输入的时候用getline函数,其次输入时要加getchar()
题解如下
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int n;
string a[10005];
int main()
{
cin >> n;
getchar();
for (int i = 1; i <= n; i++)
{
getline(cin, a[i]);
}
int ans = 0;
for (int i = 1; i <= n; i++)
{
int p = a[i].size();
for (int j = 0; j < p - 3; j++)
{
if (a[i][j] == '@' && a[i][j + 1] == 'w' && a[i][j + 2] == 'y' && a[i][j + 3] == 'k')
{
ans++;
break;
}
}
}
cout << ans;
return 0;
}
求最大公因数的写法:
int gcd(ll a, ll b)
{
return b ? gcd(b, a % b) : a;
}
在使用的时候直接引用就好了
在写质数函数的时候有个细节,要不然也不能够ac
int prime(int n)
{
if(n<2)
return 0;//就是这两行,不写就过不来了
for(ll i=2;i*i<=n;i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}