Zero 0是老师为新高一的同学们准备的,为了熟悉Linex,我们也用了这套题。
T1神奇的数字3
考查知识点:模拟;
编程求出所有不超过N的自然数中,有些数会含有数字3,请统计3的总数。
输出只有一行,包括1个整数。N<=10000
这......,也太水了点;
#include<cstdio>
#include<algorithm>
using namespace std;
int n,ans;
int search(int x)
{
int tmp=0;
while(x)
{
if(x%10==3) tmp++;
x/=10;
}
return tmp;
}
int main()
{
freopen("count.in","r",stdin);
freopen("count.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
ans+=search(i);
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
T2 Super power
现在交给你的是一个相当简单的问题,给你两个数a、b,想要求ab-ba的值。
但是这个值相当的大,故而简化了这个题目,求:(ab)%N-(ba)%M 的值。
这......,也是水题。
#include<cstdio>
#include<algorithm>
using namespace std;
int a,b,n,m;
int main()
{
freopen("pow.in","r",stdin);
freopen("pow.out","w",stdout);
scanf("%d%d%d%d",&a,&b,&n,&m);
int j=a,k=b;
for(int i=2;i<=k;i++)
a=a*j%n;
for(int i=2;i<=j;i++)
b=b*k%m;
printf("%d",a-b);
fclose(stdin);
fclose(stdout);
return 0;
}
T3 回形方阵
大意:输出像这样的一个矩形:
3 3 3 3 3 3 3
3 2 2 2 2 2 3
3 2 1 1 1 2 3
3 2 1 0 1 2 3
3 2 1 1 1 2 3
3 2 2 2 2 2 3
3 3 3 3 3 3 3
表示也很水;
分别更新上 下 左 右即可;
#include<cstdio>
#include<algorithm>
using namespace std;
int n,nmp,k;
int tmp=1;
int a[100][100];
int main()
{
freopen("cir.in","r",stdin);
freopen("cir.out","w",stdout);
scanf("%d",&n);
tmp=2*n+1;
while(k<=n)
{
for(int i=1+nmp;i<=tmp-nmp;i++)
{
a[1+nmp][i]=n-k;
a[i][1+nmp]=n-k;
a[i][tmp-nmp]=n-k;
a[tmp-nmp][i]=n-k;
}
k++,nmp++;
}
for(int i=1;i<=tmp;i++)
{
for(int j=1;j<=tmp;j++)
printf("%d ",a[i][j]);
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}
然而翻车了,在建完.cpp后,我没有看题,将第一题的代码写在了第二题里,依次顺移,结果......?
惨啊,说好的AK呢;
NOIP要因为这样的事情爆0......不说了,熟悉Linux ing......
第三题难道不是两个for就解决了么
直接覆盖啊