网易2017 最大奇约数

package com.net163.question;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/**
 * Created by Administrator on 2016/11/11 0011.
 */
public class MaxApproximate {
    private int N = 7;

    private int maxApprNumber(int number) {
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        for (int i = 1; i * i <= number; i++) {
            if (number % i == 0) {
                arrayList.add(number / i);
                arrayList.add(i);
            }
        }
        Collections.sort(arrayList, new Comparator<Integer>() {
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        for(int x:arrayList){
            if (x%2!=0){
                return x;
            }
        }
        return 0;
    }

    @Test
    public void testMaxApprCount() {
        int count = 0;
        for (int i = 1; i <= N; i++) {
            int tmp = maxApprNumber(i);
            count += tmp;
            System.out.println(tmp);
        }
        System.out.println(count);
    }
}

没啥难度直接贴代码

时间: 2024-10-11 21:14:30

网易2017 最大奇约数的相关文章

网易2017年校招笔试题 最大的奇约数

题目: 定义函数f(x)为x的最大奇数约数,x为正整数,例如f(44) = 11. 现在给出一个N,需要求出f(1) + f(2) + f(3) + ... + f(N) 例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 7 = 21. 分析: 奇数的最大约数是自身, 偶数的最大约数是是除去所有偶因子之后的那个奇数.所以直观的思路就是挨个遍历一遍加起来. 代码: 1 #include <i

网易2017秋招编程题集合-牛客网

网易2017秋招编程题集合-牛客网 链接:https://www.nowcoder.com/questionTerminal/0147cbd790724bc9ae0b779aaf7c5b50来源:牛客网 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列. 现在给出一个数字序列,允许使用一

每日编程系列———最大奇约数

一.题目 小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣.一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数. 例如:f(44) = 11. 现在给出一个N,需要求出 f(1) + f(2) + f(3).......f(N)例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 3 + 7 = 21小易计算这个问题遇到了困难,需要你来设计一个算法帮助他. 输入

网易2017校招编程题

内推挂了,继续再战! 1.分苹果: 小易去买苹果,有两种包装,一种一袋8个,一种一袋6个,小易要买n个苹果(不能多也不能少),输出袋子最少的购买方案下的袋子,若无法正好买到n个,则输出-1. 解:设8个一袋的买了pack8袋,6个一袋的买了pack6袋.想要总袋子数最少,那么肯定优先买8个一袋的,最多能买n/8袋,先另pack8=n/8,计算该情况下,pack6为多少能满足总苹果数为6,若无法满足,则减少pack8的数量,直到可以满足总量为n. #include<iostream> using

网易2017春招笔试真题编程题集合题解

01 双核处理 题目 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务.n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间. 输入描述 输入包括两行:第一行为整数n(1 ≤ n ≤ 50)第二行为n个整数lengthi,表示每个任务的长度为length[i]kb,每个数均为1024的倍数. 输出描述输出一个整数,表示最少需

网易2017秋招笔试题3:最长公共子括号序列长度

[问题来源]网传的2017网易秋招笔试题 [问题描述] [算法思路] 下面的解题思路摘自  http://www.cnblogs.com/Atanisi/p/7500186.html 刚看到题我就想到暴力解,深搜出所有合法的括号序列,再依次比较公共子序列的长度,返回最长的.但是深搜一般和路径有关,这道题仅仅需要最大公共子序列的长度.而我们发现最大公共子序列的长度就是 s.size() - 1(当且仅当修改距离为 1 时 LCS 最大), 那么我们就想到,可以变换 s 中一个括号的位置,枚举所有的

第6题——最大的奇约数

小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣.一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数. 例如:f(44) = 11.现在给出一个N,需要求出 f(1) + f(2) + f(3).......f(N)例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 3 + 7 = 21小易计算这个问题遇到了困难,需要你来设计一个算法帮助他. 输入描述: 输入

网易2017秋招编程题集合_以下代码全部来自牛客网

如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列.现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前的位置(只插入一个和).现在对于所给序列要求出最少需要多少次操作可以将其变成回文序列. 链接:https://ww

网易2017秋招编程题——回文序列 解题报告

Problem:https://www.nowcoder.com/question/next?pid=2811407&qid=46573&tid=6015849 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列. 现在给出一个数字序列,允许使用一种转换操作: 选择任意两个相邻的数,