题目大意:求两张图片合并起来后,黑色的像素有多少个
解题思路:用数组去模拟1024个像素,先把整个空间设置成白色,如果是黑色的话,就填充进去,如果是白色的话,就跳过,如果遇到'p'就再读取4个
注意:注意cin和getchar的区别,要记得读取换行符
#include<cstdio>
#include<cstring>
char pix[1024];
void image_fill(int number, char *pix) {
char c;
c = getchar();
if(c == 'p') {
image_fill(number*4,pix+1024/(number*4)*0);
image_fill(number*4,pix+1024/(number*4)*1);
image_fill(number*4,pix+1024/(number*4)*2);
image_fill(number*4,pix+1024/(number*4)*3);
}
else if(c == 'f') {
int v = 1024 / number;
memset(pix,1,v);
}//black
}
int main() {
int test;
scanf("%d\n", &test);
for(int i = 0; i < test; i++) {
memset(pix,0,sizeof(pix));//white
image_fill(1,pix);
getchar();
image_fill(1,pix);
getchar();
int count = 0;
for(int j = 0; j < 1024; j++)
if(pix[j])
count++;
printf("There are %d black pixels.\n", count);
}
return 0;
}