算法竞赛入门经典(刘汝佳版)例题与解答
生活随笔
收集整理的這篇文章主要介紹了
算法竞赛入门经典(刘汝佳版)例题与解答
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.P39--開燈問題
問題描述:有n盞燈,編號為1~n。第一個人把所有燈打開,第二按下所有編號為2的倍數的開關(即每按一次燈的狀態都將發生改變),第k格人將按下所有為k倍的編號開關。輸入n和k,且k<=n<=1000,輸出最后開著的燈的編號。
示例輸入:7 3
樣例輸出:1 5 6 7
分析:創建一個數組,且令該數組的長度等于n,并以0表示關,1表示開,最初該數組所有元素都為0。每操作一次,0和1互換。
代碼如下:
#include <stdio.h> int main() {int n,k;scanf("%d%d",&n,&k);int a[n];for (int i=0; i<=n-1; i++) {a[i]=0;}for(int i=1; i<=k; i++) {for(int j=1; j<=n; j++) {if (j%i==0) {if (a[j-1]==0) {a[j-1]=1;} else {a[j-1]=0;}}}}for(int i=0; i<=n-1; i++) {if (a[i]==1)printf("%d",i+1);}return 0;}總結
以上是生活随笔為你收集整理的算法竞赛入门经典(刘汝佳版)例题与解答的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FBV(function base vi
- 下一篇: 【机器学习】自己手写实现线性回归,梯度下