学习刘汝佳第八天
Ⅰ例题3-4 猜数字游戏的提示(Master-Mind Hints,UVa 340)
1.a[i]==b[i]是位置和值都相等
2.排除多余,构成两个数组的基本序列当外循环,每次进一个元素,分别统计它在两个数组中的次数,把数值小的放到总次数中。
3.注意括号匹配
Ⅱ例题3-5 生成元(Master-Mind Hints,UVa 340)
1.数组的计数器c不能总是赋成0
2…memset,c=0的情况需要在外循环内单独处理,
3…m<ans[y]没必要
.#include<stdio.h>
#include<string.h>
#define maxn 100000
int a[100001];
int main()
{
int x,y,z,m,n,c,min=maxn;
while(scanf("%d",&y)==1&&y<=100000&&y>=1)
{
memset(a,0,sizeof(a));
c=0;
for(x=1;x<y;x++)
{
z=x;
m=0;
while(z!=0)
{
m+=z%10;
z/=10;
}
if(x+m==y)
{a[++c]=x;
}
}
printf("%d ",c);
if(c==0)
{
printf("%d ",0);
}
else
printf("%d ",a[1]);
}
return 0;
}