zoukankan      html  css  js  c++  java
  • hdoj-2053-Switch Game

    Switch Game

    题目:switch game

    题目大意:在一条街上有好多灯,第i次操作调整第ki盏灯(即是i的倍数),即原来灯是关(0)的调为开的(1),或者原来灯是开的调为关的。
    输入一个整数n,判断第n盏灯在经过无数次操作以后,它的亮暗情况(0/1)。

    解题方法1:
    无数次操作只有前n次对第n盏灯有效,那么我用一个循环的嵌套即可以解决问题:最外围的for循环代表遍历第i盏灯(i<=n),里面的for循环判断n是否是i的倍数,是的话进行操作。最后输出第n盏灯的亮暗情况。
    这是常规的解题思路,那么也是我的解题思路,我是不可能一次AC的:( hah。评测结果是TLE。问题也很好找:n太大了怎么办。

    我进行了一系列降低题目复杂度的测试,结果只要是两个以上的循环都是TLE。
    其实,有时候把问题想的太复杂了,不是吗?

    这道题目只需要判断第n盏灯就可以了,和前面的n-1盏灯后面的无穷多盏灯一点关系都没有。代码如下:

    解法:

    #include<stdio.h>
    int main()
    {
    	int n,i,j,a=0;
    	while(scanf("%d",&n)!=EOF)
    	{
    		a=0;//第n盏灯的状态变量a初始化置为0
    		for(i=1;i<=n;i++)
    		if(n%i==0)a=!a;//有效操作把a的值置反
    		printf("%d
    ",a);
    	}
    	return 0;
    }
    

    一共13行代码,我原先的解法是它的两倍有余。有时候编程的乐趣就在这里,当你发现一个非常简单的算法的时候,你会很为其感到不可思议和非常excited。
    简单易懂,没有多余亘长的语句,希望我也有一天能够做到像他们一样。

  • 相关阅读:
    [PAT] 1012 The Best Rank (25 分)Java
    scroll-view 隐藏滚动条
    python bool
    wx小程序 button 属性open-typ 用法 按钮分享
    python str 的常用方法
    node global文件夹和chace文件夹位置全局位置修改
    wx.showModal() 内容如何换行?
    自定义导航栏头部 并简单设置标题和返回按键
    jquery绑定事件如何传递参数
    复习第一天内容
  • 原文地址:https://www.cnblogs.com/qq952693358/p/5259232.html
Copyright © 2011-2022 走看看