数学题
雨羊
学生
展开
-
HUD 1018 Big Number
求一个数阶乘的位数...一开始没思路。。。x表示位数,则x-1=lg(n!),后面可变为加法。。。很水,注意int 和double的转换#include#include#include#includeusing namespace std;int main(){ int n,k,i; double l; cin>>n; while(n--) { l=0; cin>>k原创 2017-07-08 22:12:26 · 158 阅读 · 0 评论 -
HUD-1060 Leftmost Digit
题目链接:HDU—1060对一个数num可写为 num=a*10^n , 即科学计数法,使a的整数部分即为num的最高位数字numnum=10n * a 这里的n与上面的n不等两边取对数: num*lg(num) = n + lg(a);因为a令x=n+lg(a); 则n为x的整数部分,lg(a)为x的小数部分又x=num*lg(num);a=10(x-n) = 10(x-int(x原创 2017-07-05 10:07:03 · 197 阅读 · 0 评论 -
HDU-1005 Number Sequence 循环结
一开始的思路是遇到11就开始循环,后来发现,发现当A=5555,B=666666时数列是1142142142142,这种情况不是以11开始循环的,依然超时就罢了,关按11判断的话就错了。因为两个结果都一定是0到6之间的数,所以一定会循环,而且循环节不会超过7*7=49。(因为前面2个数若相同,则第三个之后的数必相同,而在49内必能找到2个相邻的数在前面出现过)。#includeint mai原创 2017-07-04 09:19:19 · 172 阅读 · 0 评论 -
zzuli 2127 tmk射气球
经典点到线段最短距离问题原创 2017-04-21 20:03:07 · 339 阅读 · 0 评论 -
卡特兰数
出栈方案数思路:首先,我们设f(n)=序列个数为n的出栈序列种数。(我们假定,最后出栈的元素为k,显然,k取不同值时的情况是相互独立的,也就是求出每种k最后出栈的情况数后可用加法原则,由于k最后出栈,因此,在k入栈之前,比k小的值均出栈,此处情况有f(k-1)种,而之后比k大的值入栈,且都在k之前出栈,因此有f(n-k)种方式,由于比k小和比k大的值入栈出栈情况是相互独立的,此处可用乘法原则,...原创 2018-07-18 10:17:11 · 150 阅读 · 0 评论 -
组合数C(n,m)的计算
C(n,m)的计算方式:1.公式:C(n,m) = n!/((n-m)! * m!),在算法上较难实现,阶乘很快会爆long long2.递推:C(n,m) = C(n-1,m-1) + C(n-1,m)在算法上当然会采用第二种方式计算,而且因为C(n,m)本身值很大,所以大多数碰见它的情况会取模#include<iostream>#define MOD 10000...原创 2018-07-18 10:47:35 · 4487 阅读 · 0 评论 -
阶乘末尾0的个数
题目描述输入描述:输入数据共一行,一个正整数n,意义如“问题描述”。输出描述:输出一行描述答案:一个正整数k,表示S的末尾有k个0示例1输入复制10输出复制7说明 思路:观察这个表达式我们发现 0 的个数即为该表达式的最终结果含有 10 的几次方的因子。我们就联想到了拆素数。并且 10 的 n 次方都有...原创 2018-07-23 09:59:41 · 475 阅读 · 0 评论 -
矩形的交面积
矩形边平行X轴或Y轴输入:矩形某对角线上两个点输出:交面积#include<iostream>#include<cmath>using namespace std;int main() { double x1,y1,x2,y2; double x3,y3,x4,y4; double m1,m2,n1,n2; cin>>x1>&g...原创 2019-04-01 17:53:51 · 197 阅读 · 0 评论