C 有一叠卡片,卡片号依次为1到n,并且所有卡片的正面朝上。从卡片号2开始,把凡是偶数的 卡片都翻成正面朝下。再从3号卡片开始,把凡是卡片号为3的倍数的卡片都翻一面(即把正面 朝上的翻成正面朝下,把正面朝下的翻成正面朝上)。下一步从4号卡片开始,把凡是卡片号 为4的倍数的卡片都翻转一次,依次类推。问:最后哪些卡片朝上。
3条回答 默认 最新
CSDN专家-天际的海浪 2021-07-03 04:00关注用1表示正面朝上。0表示正面朝下。为了方便用数组1到n下标存放,下标0不用
代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include<stdio.h> int main () { int i,j,n=10; printf("输入n:"); scanf("%d", &n); int a[n+1]; for(i = 1; i <= n; i ++) { a[i] = 1; } for(i = 2; i <= n; i ++) { for(j = i; j <= n; j += i) { a[j] = !a[j]; } } for(i = 1; i <= n; i ++) { printf("%d ",a[i]); } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1