2021阿里笔试题

2021阿里笔试题n个人,初始序号为a[i],当某个人的序号是某个整数的平方时,则获胜。现在发放一定数量的券,每张券可以是自己的序号加一或减一。求让一半的人获胜至少需要多少张券。//testali.cpp:定义控制台应用程序的入口点。//#include”stdafx.h”#include<math.h>#include<iostream>#include<math.h>#include<vector>#include<algori

大家好,又见面了,我是你们的朋友全栈君。

n个人,初始序号为a[i],当某个人的序号是某个整数的平方时,则获胜。现在发放一定数量的券,每张券可以是自己的序号加一或减一。求让一半的人获胜至少需要多少张券。

// testali.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h”
#include <math.h>
#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{

    
    int n ;
    cin >> n;
    int *a =new int[n];
    int i =0;
    
    while(i<n){

        
    cin>>a[i++];

    }
    int ans = 0;
    
    //第一步:遍历数组所有成员,求出每一个数据使用的最少券数,记录到原数组中,之后从小到大排序,取一半的人数

    for (int i =0;i <n;i++)
    {

        double c = sqrt((double)a[i]);

        int tmp = (int) c;
        //cout<< “c== ” <<c <</* endl;
        //cout<<“tmp == ” << tmp << endl;*/

        if(tmp*tmp != a[i])
        {

            //求得每一个数据的最少使用券数量
            a[i]= min((tmp+1)*(tmp+1)-a[i],a[i]-tmp*tmp);

        }
        else{

            a[i]=0;
        }
    }
    sort(a, a+n);
    for(int i =0;i <n/2;i++)
    {    
        ans+=a[i];
    }
    cout<< “ans == ” << ans<< endl;
    cout<< endl;
    system(“pause”);
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142574.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm+anaconda_pycharm和anaconda区别

    pycharm+anaconda_pycharm和anaconda区别python自身缺少numpy、matplotlib、scipy、scikit-learn…等一系列包,需要我们安装pip来导入这些包才能进行相应运算(python3.5自带了get-pip.py,不需额外下载安装),在cmd终端输入:pipinstallnumpy就能安装numpy包了。每次都额外安装所需要的包略麻烦,这时候我们可以采用anaconda了。anaconda是一个python发行版,包含了大量的包,使用anaconda无需再去额外安装所需包。安装完anaconda,就相当于安装了Py

    2022年8月26日
    3
  • Mqtt开发笔记:Mqtt服务器搭建

    Mqtt开发笔记:Mqtt服务器搭建若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门

    2022年4月29日
    105
  • 安卓activity生命周期_请描述activity的生命周期

    安卓activity生命周期_请描述activity的生命周期Activity作为Android的四大组件之一,非常的重要,也是最常用的四大组件,使用Activity必须要在AndroidManifest中进行注册,那么作为Android的基础,Activity的生命周期你是否完全掌握了呢?下面就让我们来一起回顾一下Activity的生命周期吧!首先,你需要知道Activity的生命周期分为两种。 典型情况下的生命周期(就是我们开发中经常用到的…

    2022年8月16日
    5
  • springboot定时任务使用QUARTZ出现 java.lang.NoSuchMethodException: io.sirc.modules.job.task.XXX

    springboot定时任务使用QUARTZ出现 java.lang.NoSuchMethodException: io.sirc.modules.job.task.XXX

    2020年11月9日
    234
  • git命令-切换分支

    git命令-切换分支git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢?主要命令如下

    2022年6月20日
    36
  • spss19安装许可证代码_spss许可证不存在怎么办

    spss19安装许可证代码_spss许可证不存在怎么办联系我们官网:三维逆向网(www.3vnx.com)公众号:软件小秘书(rj-xms)QQ:609201757VX:dyc392001Spss23软件(Win64)下载链接:https://pan.baidu.com/s/1_cK8CxP9brmgw_dkBKwzoQ提取码:rb63Spss23软件(Win32)下载链接:https://pan.baidu.com/s/1pTkQwq…

    2025年6月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号