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;
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 邮件服务器配置「建议收藏」

    邮件服务器postfix仅提供smtp服务,不提供pop3和imap服务,主要是用发送和接收邮件的(接收到的邮件后,一般转交dovecot处理,dovecot负责将postfix转发过来的邮件保存到服务器硬盘上)dovecot仅提供pop3和imap服务,不提供smtp服务(Foxmail之类的邮箱客户端,都是通过pop3和imap来收发邮件的。…

  • 平衡二叉树与红黑树的区别_平衡二叉树怎么构造

    平衡二叉树与红黑树的区别_平衡二叉树怎么构造平衡二叉树与红黑树一、红黑树的性质:二、红黑树的主要用途,和其他树的比较:三、运用场景一、红黑树的性质:  红黑树是一颗二叉搜索树,通过对任何一条从根到叶子的简单路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍,因而是近似于平衡的。  树的每个结点包含5个属性,color,key,left,right,p。如果一个结点没有子结点或父结点,则该结点的响应指针属性的指为…

    2022年10月21日
  • 2017年北理工研究生复试总结「建议收藏」

    2017年北理工研究生复试总结「建议收藏」就在昨天还为自己在专家面试环节答题答得非常糟糕的事情感到懊恼不已,今天进入官网一看,我的天,竟然过了,复试成绩竟然77分,仅比第一名差2分。

  • spring cloud 入门系列八:使用spring cloud sleuth整合zipkin进行服务链路追踪[通俗易懂]

    好久没有写博客了,主要是最近有些忙,今天忙里偷闲来一篇。我是华丽的分割线微服务架构是一种分布式架构,微服务系统按照业务划分服务单元,一个微服务往往会有很多个服务单元,一个请求往往会有很多个单元参与

  • android之 Activity跳转出现闪屏

    android之 Activity跳转出现闪屏属于个人开发小知识应用Activity之间相互跳转时可能会出现闪屏现象原因:由于finish原因,网传,在onPause()里延迟3s使用finish。解决方案:方案一://我的解决方案,自定义style然后找到对应的Activity进行设置<stylename=”Theme”parent=”android:Theme”><itemname=…

  • 递归求数组的和_java递归教程

    递归求数组的和_java递归教程使用递归实现数组求和示例分享思路如下:给定一个含有n个元素的整型数组a,求a中所有元素的和。问题的难点在于如何使用递归上。如果使用递归,则需要考虑如何进行递归执行的开始以及终止条件,首先如果数组元素个数为0,那么和为0。同时,如果数组元素个数为n,那么先求出前n-1个元素之和,再加上a[n-1]即可。此时可以完成递归功能。总之,递归就是在某个函数的执行过程中首先判断它的终止条件参数,终止条件参数满…

发表回复

您的电子邮箱地址不会被公开。

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