zoukankan      html  css  js  c++  java
  • 牛客OI赛制测试赛2 星光晚餐

    链接:https://www.nowcoder.com/acm/contest/185/D
    来源:牛客网
     

    题目描述

    Johnson和Nancy要在星光下吃晚餐。这是一件很浪漫的事情。

    为了增加星光晚餐那浪漫的氛围,他拿出了一个神奇的魔法棒,并且可以按照一定的规则,改变天上星星的亮暗。

    Johnson想考考Nancy,在他挥动魔法棒后,会有多少颗星星依旧闪耀在天空。他知道,Nancy一定会一口说出答案。

    Nancy当然知道怎么做啦,但她想考考你!

    Johnson先将天上n个星星排成一排,起初它们都是暗的。

    他告诉他的妹子,他将挥动n次魔法棒,第i次挥动会将编号为i的正整数倍的星星的亮暗反转,即亮的星星转暗,暗的星星转亮。

    Johnson想问Nancy,最终会有多少个星星依旧闪亮在天空。


     

    输入描述:

    一个整数n,含义请见题目描述。

    输出描述:

    一个整数ans,即n次操作后会有多少个星星依旧闪亮。

    示例1

    输入

    复制

    3

    输出

    复制

    1

    示例2

    输入

    复制

    7

    输出

    复制

    2

    备注:

    对于60%的数据:n≤2×106
    对于100%的数据:n≤1018

     我们首先用下面这个程序来打个表:

    #include<iostream>
    #include<cstring>
    using namespace std;
    
    int main()
    {
    	int a[1000];
    	int n=3,m,j,k,i,T;
    	for (n=1;n<=50;n++)
    	{
    		int ans=0;
    		memset(a,0,sizeof(a));
    		for (i=1;i<=n;i++)
    		{
    			for (j=i;j<=n;j++)
    			{
    				if (j%i==0) 
    				{
    					a[j]==1?a[j]=0: a[j]=1;
    				}
    				
    			}
    			
    		}
    		for (i=1;i<=n;i++)
    		ans += a[i];
    		cout<<"n = "<<n<<":"<<ans<<endl;
    	}
    }

    结果是这样的:

     n = 1:1
    n = 2:1
    n = 3:1
    n = 4:2
    n = 5:2
    n = 6:2
    n = 7:2
    n = 8:2
    n = 9:3
    n = 10:3
    n = 11:3
    n = 12:3
    n = 13:3
    n = 14:3
    n = 15:3
    n = 16:4
    n = 17:4
    n = 18:4
    n = 19:4
    n = 20:4
    n = 21:4
    n = 22:4
    n = 23:4
    n = 24:4
    n = 25:5
    n = 26:5
    n = 27:5
    n = 28:5
    n = 29:5
    n = 30:5
    n = 31:5
    n = 32:5
    n = 33:5
    n = 34:5
    n = 35:5
    n = 36:6
    n = 37:6
    n = 38:6
    n = 39:6
    n = 40:6
    n = 41:6
    n = 42:6
    n = 43:6
    n = 44:6
    n = 45:6
    n = 46:6
    n = 47:6
    n = 48:6
    n = 49:7
    n = 50:7

    所以由此得出规律:

    #include<iostream>
    #include<cmath>
    using namespace std;
    
    int main()
    {
    	long long n,m,j,i,T;
    	cin>>n;
    	cout<<(long long)sqrt(n)<<endl;
    	return 0;
    }
  • 相关阅读:
    leetcode练习:26. Remove Duplicates from Sorted Array
    leetcode练习:11. Container With Most Water
    leetcode练习:5. Longest Palindromic Substring
    leetcode练习:2.Add Two Numbers
    算法笔记:分治
    (排序回顾)快速排序
    (排序回顾)归并排序
    leetcode练习:2017/09/21~09/22
    算法笔记:递归&迭代
    在Treeview中节点的data属性中保存记录类型及其消除的办法
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451443.html
Copyright © 2011-2022 走看看