杭电2053,简单易懂的C语言代码!!!

Re:题意:有无限多的电灯排成一列,一开始都是关,操作无限多次,第i次操作会把编号为i和i的倍数的电灯改变状态。问最后第i盏电灯的状态是开还是关    //后边有数据。。。
#include<stdio.h>
int main()
{
    int b,n,i;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==1)//第一次操作,开关全变为1;
        printf("1\n");
        else
        {
            b=0;
            for(i=2;i<=n;i++)//从2开始判断约数,开关从1开始;
            {
                if(n%i==0)
                b++;
            }
            if(b%2==0)//判断开关变化次数,(1 0 1 0 1 0........);
            printf("1\n");
            else
            printf("0\n");
        }
    }
    return 0;
} 

Consider the second test case:

The initial condition : 0 0 0 0 0 …

After the first operation : 1 1 1 1 1 …

After the second operation : 1 0 1 0 1 …

After the third operation : 1 0 0 0 1 …

After the fourth operation : 1 0 0 1 1 …

After the fifth operation : 1 0 0 1 0 …

The later operations cannot change the condition of the fifth lamp any more. So the answer is 0.

时间: 2024-11-12 13:34:43

杭电2053,简单易懂的C语言代码!!!的相关文章

杭电2053

#include<stdio.h> int main() { int n,i; while(scanf("%d",&n)!=EOF) { int num=0; for(i=1;i<=n;i++) { if(n%i==0) num++; } if(num%2==0) printf("0\n"); else printf("1\n"); } } 看输入的数有多少个因数,有多少个因数就表示被改变了几次状态,因数的数目为偶数的,

杭电2053 WA

#include<stdio.h> int main() { int n,i,a[105]; while(scanf("%d",&n)!=EOF) { for(i=0;i<=100;i++) { a[i]=0; } a[0]=1; for(i=1;i<=100;i++) { if((i+1)%n==0) { if(a[i+1]==1) a[i+1]=0; else a[i+1]=1; } } for(i=0;i<=100;i++) printf(&

杭电oj1004 自写成功代码

#include<stdio.h>#include<malloc.h>#include<string.h> typedef struct Color{ char name[16]; int num; struct Color *next;}Color,*COLOR; void Init(Color *head){ char a[16]="0"; head->next=NULL; strcpy(head->name,a); head->

杭电---2053 Switch Game

Problem Description  There are many lamps in a line. All of themare off at first. A series of operations are carried out on these lamps. On thei-th operation, the lamps whose numbers are the multiple of i change thecondition ( on to off and off to on

杭电 acm 2053 ( Switch Game )

这题思路: 一开始有n盏灯,且全部为关闭状态,都记为 0  就是  The initial condition :      0 0 0 0 0 … 然后之后进行i操作就是对这些灯以是否能被i整除,进行改变状态,如将 0 改为 1 或 将 1 改为 0 正如提醒里的 After the first operation :  1 1 1 1 1 … After the second operation : 1 0 1 0 1 … After the third operation :  1 0 0

杭电 OJ 提交代码需要注意的问题

杭电acm 提交代码需要注意的问题 1. 用 Java 的时候类名请用 Main 2. Java 提交出现 PE 的可能原因有 1) 最基本的错误是空格问题,比如注意每行的末尾是否输出空格 2) 用 Java 提交的时候需要注意换行是用的什么方法输出的,如果用 System.out.printf() 这个格式化输出,请使用 %n 或者 \r\n 作为转义符,而不要用 \n,也可以用 System.out.println() 输出换行 3. 对包含比较精确的数字计算最好使用 C/C++ 语言,对于

杭电2024(C语言合法标识符)

杭电2024 Problem Description 输入一个字符串,判断其是否是C的合法标识符. Input 输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串. Output 对于每组输入数据,输出一行.如果输入数据是C的合法标识符,则输出"yes",否则,输出"no". Sample Input 3 12ajf fi8x_a ff ai_2 Sample Output no yes no

2015考研 杭电 计算机学院 复试笔试题第一题 JAVA语言解法

杭电 2015年考研 计算机学院 复试笔试第一题 JAVA解法 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /* 杭电2015年 计算机学院 复试 笔试题第一题 JAVA解答 * author 刘汪洋 QQ 605283073 * 求出:字符串如:"34223abd#34SB-11--" * 中整数的和 其中-在数字前表示负号,否则为字符 */ pub

杭电acm 1002 大数模板(一)

从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的,但是经过自己的使用与调试也明白了其中的内涵. 首先定义大数的结构体: struct BigNum{ static const int BASE=100000000; static const int WIDTH=8; vector<int> s; BigNum(long long num=0){