
------数论
zhengjihao
这个作者很懒,什么都没留下…
展开
-
数据全排列代码
主要思想是首先选择第一个数,有n中选择,选择后标记,下次不可以再选择。然后选择第二个数,此时有n-1中选择,选择后标记,一次类推。n个数都选择好了,就是一次排列。本代码使用了位运算,适合n小于32的情况。如果n比较大,需要借助额外的空间。**方式二:**代码如下。主要采用交换的方式。每次都将当前元素和后面的元素交换位置。本文主要介绍两种全排列的获取方式。原创 2024-01-04 13:40:51 · 409 阅读 · 0 评论 -
打印素数表
现在考虑(i-1)*i的情况。如果i-1是素数,则(i-1)*i肯定处理过了。如果i-1是合数,假设是a * b,a为素数,则(i-1)其中1即不是素数,也不是合数。从2开始,如果是素数,则将其倍数都改成false,则最后剩下的就是素数。j 是从 i * i开始的,j原创 2023-12-29 15:08:17 · 441 阅读 · 0 评论 -
辗转相除法求最大公约数证明
辗转相除法求最大公约数证明假设整数aaa,bbb,且a>ba > ba>b,rrr为aaa除以bbb的余数,则有(a,b)=(b,c)。证明:假设d=(a,b)d=(a,b)d=(a,b),则d∣a,d∣b⇒d∣a−k∗b(k≥0)⇒d∣rd|a,d|b \Rightarrow d|a-k*b(k \geq 0) \Rightarrow d|rd∣a,d∣b⇒d∣...原创 2019-11-24 10:33:12 · 378 阅读 · 0 评论 -
Leetcode 279. Perfect Squares
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to n.For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, ret原创 2017-09-12 09:54:11 · 228 阅读 · 0 评论 -
数字和为sum的方法数 滴滴笔试题
给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入描述: 输入为两行: 第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000) 第二行为n个正整数Ai,以空格隔开。输出描述: 输出所求的方案数输入例子1: 5 15 5 5 10 2 3原创 2017-09-10 13:09:46 · 1694 阅读 · 2 评论 -
[编程题] 末尾0的个数 滴滴笔试
输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为一行,n(1 ≤ n ≤ 1000)输出描述: 输出一个整数,即题目所求输入例子1: 10输出例子1: 2思路:通过举例: 2*5=10 4*5=20 6*5=30 8*5=40 产生0的都是5的倍数。所以,有多少个5,就有多少个0.(因为偶数肯原创 2017-09-10 10:22:12 · 400 阅读 · 0 评论 -
排座位(百度2017秋招真题)
排座位(百度2017秋招真题)原创 2017-06-22 19:55:52 · 4880 阅读 · 3 评论 -
错位排列
错位排列是指:n个对象排队,每个人都不在他们原来的位置上,这样的排列有多少种? 我们假设有ABCDE 5个对象,则让A先排,可以有BCDE 4个位置。假设A占了B的位置,下面可以分两种情况: (1) B也占了A的位置。这时剩下的3个刚好是大小为3的错位排列问题。 (2) B 不占A的位置。此时的问题形式为 A B C D E A 因为B的位置被占了原创 2017-09-07 20:25:45 · 4227 阅读 · 0 评论 -
最大公约数和最小公倍数
求最大公约数的方法是辗转相除法,最小公倍数是两个数的积除以最大公约数。 递归的最大公约数:int gcd(int a,int b){ if(a < b) { a = a^b; b = a^b; a = a^b; } if(b == 0) return a; return gcd(b , a % b);}非原创 2017-09-06 22:28:45 · 402 阅读 · 0 评论 -
POJ 1164 放苹果 经典的组合问题
Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input 第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。Output 对输入的每组数据M和N,用一行输出相应的K。Sample Input1 7 3Sample原创 2017-09-05 17:05:56 · 533 阅读 · 0 评论 -
不相邻的组合
所谓不相邻的组合是指从A={1,2,3,…,n}A=\{1,2,3,\dots,n\}中选取mm个不相邻的组合个数,即不存在两个数j和j+1的组合。例如,n=4,m=2n=4,m=2,有组合{1,3},{2,4},{1,4}\{1,3\},\{2,4\},\{1,4\}。定理:从A={1,2,3,…,n}A=\{1,2,3,\dots,n\}中取mm个不相邻组合,其组合数为Cmn−m+1C_{原创 2017-06-22 19:33:40 · 6426 阅读 · 0 评论 -
网易笔试 分饼干
[编程题] 分饼干时间限制:1秒空间限制:32768K易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种可能的数值输入描述:输入包括两行:第一行为盒子上的数值k,模糊的数位用X表示,长度小于18(可能有多原创 2017-06-29 20:38:21 · 1084 阅读 · 0 评论