题库首页 › 信息学奥赛 › 题目 15517

完善程序(1) 1-5题 组合题 (矩阵变幻)有一个奇幻的矩阵,在不停的变幻,其变幻方式为:数字0变成 矩阵 0 0 0 1 数字1变成矩阵 1 1 1 0 最初该矩阵只有一个元素0,变幻n次后,矩阵会变成什么样? 例如,矩阵最初为:[0]:矩阵变幻1次后: 0 0 0 1 矩阵变幻2次后: 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 输入一行一个不超过10的正整数n输出变幻n次后的矩阵。试补全程序。 提示: “«” 表示二进制左移运算符,例如(11)_2 «2 = (1100)_2(11)2«2=(1100)2;而“^”表示二进制异或运算符,它将两个参与运算的数中的每个对应的二进制 位一进行比较,若两个二进制位相同,则运算结果的对应二进制位为0 ,反之 为1。 #include using namespace std; int n; const int max_size = 1<<10; int res[max_size][max_size]; void recursive(int x, int y, int n,int t) { if(n==0) { res[x][y]= ① ; return ; } int step = 1<< (n-1); recursive( ②,n-1,t); recursive(x,y+step,n-1,t); recursive(x+step,y,n-1,t); recursive( ③ ,n-1,!t); } int main() { scanf("%d",&n); recursive(0,0,④ ); int size = ⑤; for(int i=0;i<size;i++) { for(int j=0;j<size;j++) printf("%d",res[i][j]); puts(" "); } return 0; }

正确答案:完善程序①答案:t(res[x][y]=t)。核心:矩阵单元赋值。

试卷来源:2019 CSP-J入门级(第一轮)C++真题

本卷相关题目

在线做题 同科目题库