等差数列
题目描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N 个整数。
现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?
输入描述
输入的第一行包含一个整数 N。
第二行包含 N 个整数 A1 ,A2 ,··· ,AN 。(注意 A1 ∼ AN 并不一定是按等差数列中的顺序给出)
输出描述输出一个整数表示答案。
输入输出样例示例
输入
1252 6 4 10 20
输出
110
样例说明: 包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、 18、20。
运行限制
最大运行时间:1s
最大运行内存: 256M
思路(1) 等差数列的求n项的公式:n = (an-a1) / d + 1;(2) 等差数列的每一项利用公差表达的通式:(下标从1开始)a1,a2,a3…an。a2 - a1 = d,a3 - a1 = 2d,…an - a1 = (n-1)d;所以每一项与第一项的差值都是公差d的倍数。d是差值的公约数!
...
biginteger和bigdecimal的运用(相关题目:棋盘放麦子等)
一,biginteger①value.Of(参数); 这个函数的作用是将括号内的参数转换成指定的数据类型
12345678• int A=42;• BigInteger f=BigInteger.valueOf(A);• System.out.println("f="+f); //输出的f将会等于BigInteger型的42• // 答案: f=42• String s="12345";• BigInteger c=BigInteger.valueOf(s);• // 则c=12345;※※※需要注意的是不重写的话,jdk1.8 版本是无法支持这种转换的
②add()方法; 这个函数的作用是将大整数加起来
1234• ...
找质数
质数: 只有1和本身两个约数的数(埃氏筛法就不写了,直接上欧拉筛 ,yyds!!)
方法一:暴力大法 每一个整数都可以看做由两个数相乘得到,且每个乘数不大于原整数的平方根(可以减少相应的时间复杂度),本质还是暴力
123456789101112131415161718import java.util.Scanner;public class PrimeCheck { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int n = sc.nextInt(); System.out.println(isPrime(n)?"yes":"no"); } } public static boolean isPrime(int n) { if(n<=1) return true; for(int i=2;i<= ...
字符串模拟整数的加法和乘法
大整数相加与相乘(字符串模拟)
一、大整数相加模拟思路分析:
①将两个整数翻转
123 个位 十位 百位 千位a 6 5 4 1b 9 8 7 0
说白了这就是翻转字符串
②相加计算,逢十进一
③反向输出
2245
程序代码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344package suafna;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String a = sc.next(); String b = sc.next(); int len = a.length() > b.length() ? a.length() : b.length(); a ...
github部署失败解决方案
在更新部署信息的时候经常会出现这样类似的报错
123456Error: Spawn failed at ChildProcess.<anonymous> (D:\blog\node_modules\.store\hexo-util@2.7.0\node_modules\hexo-util\lib\spawn.js:51:21) at ChildProcess.emit (node:events:514:28) at cp.emit (D:\blog\node_modules\.store\cross-spawn@7.0.3\node_modules\cross-spawn\lib\enoent.js:34:29) at ChildProcess._handle.onexit (node:internal/child_process:291:12)
方案一:1.删除 .deploy_git 文件夹;
2.输入 git config --global core.autocrlf false3.然后,依次执行:
123hexo cleanhexo g ...
位运算
位运算
一、原码、反码、补码原码:符号位(正数为0、负数为1)+二进制数反码:正数的反码=正数的原码;负数的反码=负数的原码除符号位外按位求反补码:正数的补码=正数的反码;负数的补码=负数的反码+1
123整数 原码 反码 补码+7 0111 0111 0111-7 1111 1000 1001
二、与(&)、或(|)、异或(^)
1&1=1,1|1=11&0=0,1|0=10&1=0,0|1=10&0=0,0|0=01 ^ 1=0,1 ^ 0=10 ^ 1=1,0 ^ 0=0x ^ x=0,x ^ 0=xa ^ b ^ c=a ^ c ^ b=b ^ c ^ a
例如:
7&3= 111 & 011 =011=37|3= 111 | 011 =111=77 ...
进制
对于任意数制R 的数n,都可以表达为$$n=\sum_{i=0}^{k} a_{i} R^{i}=a_{0} R^{0}+a_{1} R^{1}+a_{2} R^{2}+\ldots+a_{k} R^{k}$$
一、十进制转R进制方法:十进制数除R RR取余,余数倒着写例:66(D)→1000 010(B)计算过程:
①66/2=33,余数为0②33/2=16,余数为1③16/2=8,余数为0④8/2=4,余数为0⑤4/2=2,余数为0⑥2/2=1,余数为0⑦1/2=0,余数为1
66(D)→42(H)计算过程:①66/16=4,余数为2②4/16=0,余数为4
二、十六进制转二进制方法:十六进制每一位写成四位的二进制数例:42(H)→0100 0010(B)
三、八进制转二进制方法:八进制每一位写成三位的二进制数例:456(O)→100 101 110(B)
四、二进制转十 ...
进制模拟和数位拆分(计算进位)
题目二、计算进位
题目描述A,B小于等于9位,求A+B有多少次进位
例如 555+555 3次进位
讲解:
12345678910 a%10 处理完的同时需要a/10+ b%10 处理完的同时需要a/10+ 进位 ———————— 逢十进一 个位和个位相加,十位和十位相加,对应位数相加,如左显示,对应位数各自处理
程序代码:12345678910111213141516171819202122232425262728import java.util.Scanner;public class Main { public static void main(String[] args) { int a = 0, b = 0; Scanner sc = ne ...
hexo在git下的快捷指令以及md文件编写
快捷指令
生成文章的编辑工具1hexo new "文章链接"
清空缓存1hexo cl
提交1hexo d
本地部署1hexo s
更新博客12cnpm install hexo-deployer-git --save导包
提交并发布1hexo g -d
主题文章置顶卸载hexo-generator-index,然后安装hexo-generator-index-pin-top
123npm uninstall hexo-generator-index --savenpm install hexo-generator-index-pin-top --save
数字越大,文章越靠前。例如
1234cover: top: 1 #这里加一个top就行abbrlink: 1d5436e1date: 2023-01-06 17:32:05
最大公约数和最小公倍数(gcd和lcm)
最大公约数和最小公倍数(gcd和lcm)gcd:简介:1辗转相除法,又名欧几里得算法,用于求两个数 a , b 的最大公约数(最大公因子)
使用过程:12345678910111213举个例子:a=24,其因子有1、2、3、4、6、8、12、24b=15,其因子有1、3、5、15最大公约数gcd(a,b)=gcd(24,15)=3过程如下a = 24, b = 151) t = 24%15 = 9,a = 15,b = 9;2) t = 15%9 = 6, a = 9, b = 6;3) t= 9%6 =3, a = 6, b = 3;4) t = 6%3 = 0, a = 3, b = 0;b>0条件不满足,while循环停止。
代码:12345678910111213//朴素版 public static int gcd1(int a, int b) { while (b > 0) { int temp = a % b; a = b; b = temp; } return a; }//精炼版 public ...
