
math
sunshine_lyn
欢迎访问个人博客: https://www.elainelv.github.io/
展开
-
LeetCode50. Pow(x, n)
50. Pow(x, n) 【思路】首先想到暴力法,直接算n次与x相乘,结果超时了……这一题很容易想到利用快速幂计算。 我们讨论n的奇偶性,如果n为偶数,那么X^n=(X^2)^(n/2); 如果n为奇数,那么X^n=(X^2)^((n-1)/2) *X,我们将这里的红色X保存下来,最后再乘上这些保存下来的X。 当然这一题是也可以用递归方式来实现的。递归函数如下: double fas...原创 2020-03-10 10:57:21 · 254 阅读 · 0 评论 -
LeetCode1103. 分糖果 II
【思路】糖果分发符合等差数列,计算时分为两步:1.找出可以完整拿到糖果数的轮回数,根据轮回数计算每个人在完整轮回可以获得的糖果数。2.最后一次分发不完整,按照手中糖果一次分发 /** * Note: The returned array must be malloced, assume caller calls free(). */ int* distributeCandies(int...原创 2020-03-05 10:33:14 · 378 阅读 · 0 评论 -
质因数个数
题目描述求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。输入描述:可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。输出描述:对于每组数据,输出N的质因数的个数。示例1输入120 输出5思路:本题是一道好题!考虑到被除数一定是质因数,这题就简单了。若被除数i是合数,那么一定可以找到一个数j小于...原创 2018-03-06 13:19:56 · 464 阅读 · 0 评论 -
N!
题目描述输入一个整数n,输出n的阶乘输入描述:一个整数n(1<=n<=20)输出描述:n的阶乘示例1输入3 输出6#include <stdio.h> int main() { long i,c,len,pos; int n; while(~scanf("%d",&n)){ long a[9000]={1,0}...转载 2018-03-06 12:35:07 · 180 阅读 · 0 评论 -
判断三角形类型
题目描述给定三角形的三条边,a,b,c。判断该三角形类型。输入描述:测试数据有多组,每组输入三角形的三条边。输出描述:对于每组输入,输出直角三角形、锐角三角形、或是钝角三角形。示例1输入3 4 5 输出直角三角形注意:判断锐角三角形时,需要每个角都是锐角。#include<stdio.h> #include<math.h> bool angle1(int x,int y,i...原创 2018-03-18 12:40:14 · 2775 阅读 · 0 评论 -
EOJ 3022. 计算n!右端0的个数(II)
Time limit per test: 2.0 secondsMemory limit: 256 megabytes给定一个整数 N (1≤N≤1000),输出 N 阶乘右端 0 的个数。Input第 1 行:一个整数 T (1≤T≤10) 为问题数。接下来共 T 行,每行一个整数,表示 N (1≤N≤1000)。Output对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0:...原创 2018-03-02 17:37:15 · 659 阅读 · 1 评论 -
求root(N, k) (快速幂取模)
题目描述: N<k时,root(N,k) = N,否则,root(N,k) = root(N',k)。N'为N的k进制表示的各位数字之和。输入x,y,k,输出root(x^y,k)的值 (这里^为乘方,不是异或),2=<k<=16,0<x,y<2000000000,有一半的测试点里 x^y 会溢出int的范围(>=2000000000) 输入: 每组...转载 2018-03-09 11:52:40 · 587 阅读 · 0 评论 -
HDU 1013 Digital Roots(大数)
Digital RootsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 85912 Accepted Submission(s): 26807Problem DescriptionThe digital root of a posi...原创 2018-02-21 21:08:04 · 198 阅读 · 0 评论 -
北大机试题 全排列
题目描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。输入描述:输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出描述:输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前...原创 2018-03-08 14:20:42 · 476 阅读 · 0 评论 -
矩阵幂(矩阵相乘)
题目描述给定一个n*n的矩阵,求该矩阵的k次幂,即P^k。输入描述: 第一行:两个整数n(2<=n<=10)、k(1<=k<=5),两个数字之间用一个空格隔开,含义如上所示。 接下来有n行,每行n个正整数,其中,第i行第j个整数表示矩阵中第i行第j列的矩阵元素Pij且(0<=Pij<=10)。另外,数据保证最后结果不会超过10^8。输出描述:对于每组测试数据,输...原创 2018-03-08 13:12:28 · 6913 阅读 · 0 评论 -
递推数列(矩阵快速幂)
题目描述给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。输入描述:输入包括5个整数:a0、a1、p、q、k。输出描述:第k个数a(k)对10000的模。示例1输入20 1 1 14 5 输出8359思路:矩阵快速幂#include<iostream> #include<string.h> u...转载 2018-03-07 14:29:44 · 716 阅读 · 0 评论 -
EOJ 3262. 黑心啤酒厂
http://acm.ecnu.edu.cn/problem/3262/思路:一瓶酒倒x杯,i个人来参加聚会。寻找一个数既是x的倍数又是y的倍数,也就是求最小公倍数,这样即满足了整数瓶酒平分给y个人。然后除以x就可以了。要求x,i的最小公倍数,先求其最大公约数gcd,然后最小公倍数就是(x*i)/gcd(x,i)。AC代码:#include<stdio.h> #include<s...原创 2018-02-14 11:25:45 · 305 阅读 · 0 评论