本文主要是介绍南阳理工OJ_开灯问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013,郑州大学SIAS国际学院
* 作 者: 王 杰
* 完成日期:2013 年 11 月 8 日
*
* 对任务及求解方法的描述部分:
* 输入描述: 略或见注释、总结
* 问题描述: 略或见注释、总结
* 程序输出: 略或见注释、总结
* 问题分析: 略或见注释、总结
* 算法设计: 略或见注释、总结
*/#include<stdio.h>
int main()
{int s[1000];int n,k;scanf("%d%d",&n,&k);for(int j=0;j<n;j++){s[j]=1;}for(int i=2;i<=k;i++){ //这里的变量定义很有讲究,包括怎么去巧妙的把这些变量有机的联系在一起for(int p=i-1;p<n;p+=i){if(s[p]==1) //这里不能用两个if语句,否则会出错,否则这个嵌套for就相当于没有做一样!用一个if-else就解决了s[p]=0; //两个if的意思是,第一个改过来,第二个在改回原样,所以会抹掉嵌套循环的作用elses[p]=1;}}for(int q=0;q<n;q++){if(s[q]==1)printf("%d ",q+1); }return 0;
}
运行结果:
总结:变量的定义以及之间怎么巧妙的有机的联系起来。if语句的使用以及程序的流程(见注释)( if语句不等于if-else语句 )
这篇关于南阳理工OJ_开灯问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!