精华内容
下载资源
问答
  • Java实现第十届蓝桥杯数列求

    万次阅读 多人点赞 2019-07-28 11:32:10
    试题 C: 数列求 本题总分:10 【问题描述】 给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求 第 20190324 项的最后 4 数字。 【答案提交】 这是一道结果填空的题,你只需要算出...

    试题 C: 数列求值
    本题总分:10 分
    【问题描述】
    给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求 第 20190324 项的最后 4 位数字。
    【答案提交】
    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写 多余的内容将无法得分。

    package JavaB;
    
    public class shulieqiuzhi {
    //此题类似于斐波那契数列,但是所求20190324项的最后四位数字,要是单纯按照斐波那契数列的
    //思想求下去,别说long类型,BigInteger类型都存不了这么大的数,然后我们发现,所求
    //20190324项的最后四位数字(也就是变相的告诉我们运算过程只和每个数的后四位有关系),那	
    	public static void main(String[] args) {
    		int a = 1, b = 1, c = 1;
    		// 要是求第四项,则i < 4, 同理推得求20190324,则i < 20190324。
    		for (int i = 3; i < 20190324; i++) {
    			int temp = (a + b + c) % 10000;
    			a = b;
    			b = c;
    			c = temp;
    		}
    		System.out.println(c);
    	}
    }
    
    
    展开全文
  • 数字特征(5) 题目内容: 对数字求特征是常用的编码算法,奇偶特征是一种简单的特征。对于一个整数,从个开始对每一数字编号,个是1号,十是2号,以此类推。这个整数在第n上的数字记作x,如果x和...

    这是我在mooc上浙大的java入门课上看到的一个题目,觉得挺适合练手,把我的答案挂出来,希望有些地方能给其他小伙伴以启发,也有很多不足的地方,希望有大神多多指正。题目如下:

    数字特征值(5分)
    题目内容:

    对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。

    按照二进制位值将1的位的位值加起来就得到了结果13。

    你的程序要读入一个非负整数,整数的范围是[0,100000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。

    提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。

    输入格式:

    一个非负整数,整数的范围是[0,1000000]。

    输出格式:

    一个整数,表示计算结果。

    输入样例:

    342315

    输出样例:

    13

    import java.math.BigInteger;
    import java.util.Scanner;
    /*
    本演示代码是为了求数字的奇偶特征值,输入一串数字,输出一串二进制数字表示的特征值。
    本代码实现的功能有:
    1.使用了StringBuilder类及append()方法。
    2.定义了print()递归函数。
    3.使用了翻转字符串的方法reverse(),实现了"abc"–>“cba”。
    4.使用了Integer包装类型及ParseInt()方法,实现了将字符串类型的二进制数字,如"001101",转换成int类型的十进制数。
    */
    public class Demo003
    {
    static boolean bl = true;
    static int i = 0;
    static StringBuilder sb = new StringBuilder(1024); // 1
    public static void main(String[] args)
    {
    Scanner in = new Scanner(System.in);
    int input = in.nextInt();
    while (bl)
    {
    print(input);
    }
    }

    static void print(int N)
    {
        i += 1;
        int x = N % 10;
        if ((i % 2) == (x % 2))
        {
            sb.append(1);               // 1
        }
        else
        {
            sb.append(0);
        }
        if (N > 9)
        {
            System.out.println(x);
            print(N / 10);              // 2
        }
        else
        {
            System.out.println(N);
            String s = sb.reverse().toString();		//***
            System.out.println(s);
            System.out.println(change(s));
            bl = false;
        }
    }
    
    static int change(String st)
    {
        return Integer.parseInt(st, 2);
    }
    

    }

    不过作者有一事不明,在我标***号的那一行代码,如果我不定义String s,而是把后面的代码改写为System.out.println(sb.reverse().toString()); System.out.println(change(sb.reverse().toString()));最后字符串String st将不能被正确地转换为十进制数字。比如我输入原题的342315,得到字符串001101,最后转换得到的数字居然是44…作为一个初学编程的小白真的赶脚编程是一门玄学ヾ(>Д<;))))… 逃~~

    展开全文
  • 在比赛中,有六评委,去掉评分最大及最小值,之后再求出平均即为最后结果 解题思路如下: 循环遍历数组,将每个进行累计进行 求和 sum 分别定义两个方法,通过 for 循环求 最小值 min 和 max, 最后调用...

    在比赛中,有六位评委,去掉评分最大值及最小值,之后再求出平均值即为最后结果

    解题思路如下:

    • 循环遍历数组,将每个值进行累计进行 求和 sum
    • 分别定义两个方法,通过 for 循环求 最小值 minmax
    • 最后调用方法获取到min , max,再通过 (sum - min - max) / 4
    public class test9 {
        //键盘录入六个分数,去掉最高分,去掉最低分,然后求平均值
        public static void main(String[] args) {
            //创建Scanner对象
            Scanner sc = new Scanner(System.in);
            //创建空数组来存储六个成绩
            int[] arr = new int[6];
            //定义变量记录总分
            int sum = 0;
            for (int i = 0; i < 6; i++) {
                //将六个成绩都存入到数组中
                System.out.println("请输入第" + (i+1) + "个成绩");
                arr[i] = sc.nextInt();
                //求出总分
                sum += arr[i];
            }
            //调用方法
            System.out.println("平均分为" + (sum - getMin(arr) - getMax(arr)) / (arr.length - 2));
        }
        //定义一个方法进行获取最低分
        //假设最低分是数组中的第一个值
        public static int getMin(int[] arr){
            int min = arr[0];
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] < min){
                    min = arr[i];
                    return min;
                }
            }
            return min;
        }
        //定义一个方法进行获取最低分
        //假设最低分是数组中的第一个值
        public static int getMax(int[] arr){
            int max = arr[0];
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] > max){
                    max = arr[i];
                    return max;
                }
            }
            return max;
        }
    }
    
    展开全文
  • 一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 。当你计算平均的时候,不能把那些非法的数据算在内。 输入格式: 输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字...

    题目描述:

    本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。

    输入格式:

    输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。

    输出格式:

    对每个非法输入,在一行中输出 ERROR: X is not a legal number,其中 X 是输入。最后在一行中输出结果:The average of K numbers is Y,其中 K 是合法输入的个数,Y 是它们的平均值,精确到小数点后 2 位。如果平均值无法计算,则用 Undefined 替换 Y。如果 K 为 1,则输出 The average of 1 number is Y

    输入样例 1:

    7
    5 -3.2 aaa 9999 2.3.4 7.123 2.35
    

    输出样例 1:

    ERROR: aaa is not a legal number
    ERROR: 9999 is not a legal number
    ERROR: 2.3.4 is not a legal number
    ERROR: 7.123 is not a legal number
    The average of 3 numbers is 1.38
    

    输入样例 2:

    2
    aaa -9999
    

    输出样例 2:

    ERROR: aaa is not a legal number
    ERROR: -9999 is not a legal number
    The average of 0 numbers is Undefined
    

    代码示例(Java实现)

    import java.util.Scanner;
    
    public class Main {
    
           public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            int count = cin.nextInt();
            // 记录合法的个数
            int nums = 0;
            // 记录和
            double sum = 0;
            for (int i = 0; i < count; i++) {
                String str = cin.next();
                try {
                    double num = Double.parseDouble(str);
                    // 此时已经是一个数字了,但是还要判断小数点后的位数以及他的数字
                    int length = (num + "").substring((num + "").indexOf(".") + 1).length();
                    if (length > 2 || num > 1000 || num < -1000) {
                        // 不合法
                        System.out.println("ERROR: " + str + " is not a legal number");
                    } else {
                        sum += num;
                        nums++;
                    }
                } catch (NumberFormatException e) {
                    System.out.println("ERROR: " + str + " is not a legal number");
                }
            }
            if (nums == 0) {
                System.out.println("The average of 0 numbers is Undefined");
            } else if (nums == 1) {
                System.out.printf("The average of 1 number is %.2f\n", sum);
            } else {
                double avg = sum / nums;
                System.out.printf("The average of %d numbers is %.2f\n", nums, avg);
            }
        }
    
    }
    
    展开全文
  • JAVA运算实现乘法

    千次阅读 2018-01-17 22:13:54
    运算符主要包括下表中所列的几种:运算符含义用法运算分类~按取反~op1按运算&按与op1&op2|按或op1|op2^按异或op1^op2左移op1移位运算符>>右移op1>>op2>>>无符号右移op1>>>op2使用运算实现乘法,利用的...
  • 求根号2的(两种方法 java实现

    千次阅读 2019-10-23 16:25:29
    计算根号2的,保留小数点后10。二查找法和牛顿迭代法
  • 基本思路:(1)通过一个index作为索引(int类型),来遍历多项式;(2)如果扫描到一个数字,就直接入数栈;(3)如果扫描到一个符号,就以下情况:a、如果当前符号栈为空,就将该符号直接入符号栈;b、如果符号栈不为空...
  • 试题 C: 数列求 本题总分:10 【问题描述】 给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求 第 20190324 项的最后 4 数字。 【答案提交】 这是一道结果填空的...
  • 折半方法(二查找),时间复杂度为O(logN),其中N是小数组的长度//中数特性:1、数组一半不超过该,一半不小于该;2、从首尾各删除相同个数元素,中数不变public static int findMedianNum(int[] arr1, int...
  • 频器是用的最广的一种FPGA电路了,我最初使用的是crazybingo的一个任意频器,可以实现高精度任意分频的一个通用模块,他的思想在于首先指定计数器的位宽比如32,那么这个计数器的最大就是2^32=4294967296,...
  • java实现的LSB顺序隐写

    2019-07-06 14:55:53
    没有积分的私聊我 看到消息百百发给你 1、算法核心: 1、读取图片A,获得其RGB三个通道数据并转换成三个矩阵a1,a2,a3。 2、读取文件B,将其转换成比特流b。 3、遍历b,得到比特b1,b2,b3,b4,b5,b6等等,将b1...
  • 二进制的前导的零(10) 题目内容: 计算机内部用二进制来表达所有的。一个十进制的数字,比如18,在一个32的计算机内部被表达为00000000000000000000000000011000。 可以看到,从左边数过来,在第一个1之前,...
  • 1031 查验身份证 (15) 一个合法的身份证号码由17地区、日期编号和顺序编号加1校验码组成。校验码的计算规则如下: 首先对前17数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4...
  • List},其中每个键 \text{K}K 是一个排序字符串,每个是初始输入的字符串列表,排序后等于 K。 在 Java 中,我们将键存储为字符串,例如,code。 在 Python 中,我们将键存储为散列化元组,例如,('c', 'o', 'd',...
  • Java实现第九届蓝桥杯书号验证

    万次阅读 多人点赞 2019-07-27 21:50:05
    书号验证 2004年起,国际ISBN中心出版了《13国际标准书号指南》。 原有10书号前加978作为商品分类...10与模的差值再对10取模(即取个的数字)即可得到校验,其范围应该为0~9。 下面的程序实现了...
  • 1012 数字分类 这道题需要注意的地方有两个:一个是A2计算有效性的判断;另一个是A4的输出格式。...重点是A2计算是否有效这一点,因为...A4的输出格式直接按照浮点数小数点后保留一的格式进行输出。 代码如...
  • 书号验证 第九届省赛JAVA大学C组 标题:书号验证 2004年起,国际ISBN中心出版了《13国际标准书号指南》。 原有10书号前加978作为商品分类标识;校验规则也改变。 校验的加权算法与10ISBN的算法不同,具体...
  • 本题给定甲、乙、丙三个人的能力关系为:甲的能力确定是 2 正整数;把甲的能力的 2 个数字调换位置就是乙的能力;甲乙两人能力差是丙的能力的 X 倍;乙的能力是丙的 Y 倍。请你指出谁比你强应“从之”...
  • PAT 乙级 1002 Java实现

    2018-07-19 08:29:20
    1002 写出这个数 (20)(20 ) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的。这里保证n小于10^100^。 输出格式:在一行...
  • 但特殊之处在于,采用四舍五入,能使被保留部分的与实际差值不超过最后一数量级的二之一,这种保留法的误差总和是最小的。例子例如π,便被四舍五入,大多保留下3.14了。但是,有的时候不可以用四舍五入的方法...
  • 华为2019秋招笔试Java实现(5) 笔试日期2019年8月21日 第二题(200) 题目描述 质数的定义为:在大于1的自然数中,除了1和它本身,不能整除其它自然数的数,如2,23等。 给定一个取值范围[low,high),找到该范围内...
  • 查找算法每次查找取数组中数的进行比较,如果目标值值大于中数的,则截取中数右侧的数组再次进行二查找如果目标小于中数的,则截取中数左侧的数组再次进行二查找直到找到相对应的中数才...
  • 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的。这里保证 n 小于 1010010^{100}10100。 输出格式: 在一行内输出 n 的...
  • 比如我遇到的是,时标合并:日、时、、秒,这四个字段要求在传输的过程中占4个字节,也就是每个字段占了6。 我在开发的过程中是先把每一个字段转成二进制数,位数不够的高位补0,因为设计的时候就已经考虑到...
  • 找出第 N 个二进制字符串中的第 K (二) 5471. 和为目标的最大数目不重叠非空子数组数目(滑动窗口,前缀和) 5486. 切棍子的最小成本(状压DP) 5483. 整理字符串 给你一个由大小写英文字母组成的字符串 s 。 一...
  • java不使用库函数实现求立方根 题目:计算一个数字的立方根,不使用库函数 详细描述: 接口说明 原型: public static double getCubeRoot(double input) 输入:double 待求解参数 返回值:double 输入参数的立方根,...
  • L1-016 查验身份证(15) 个合法的身份证号码由17地区、日期编号和顺序编号加1校验码组成。校验码的计算规则如下: 首先对前17数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,...
  • package test; public class FindMedian { // 求两个有序数组合... // 中数特性:1、数组一半不超过该,一半不小于该;2、从首尾各删除相同个数元素,中数不变 public static int findMedianNum(int...
  • 用最后一和中间比较大小,从而确定当前旋转的状态,然后逐步向下缩小范围。 做法如下: import java.util.ArrayList; public class Solution { public int minNumberInRotateArray(int [] array) { ...
  • 其次:情况进行讨论(1)大框架是按进行置1,去讨论除本位之外的情况(比如,个位置为1,分析十百千的情况)(2)考虑当前,若当前大于等于1,则左边可以取到最大;否则,最高取到(最大-1);(3)考虑最高...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 250
精华内容 100
关键字:

java实现分位值

java 订阅