Komorebi
首页
文章
标签
关于
友链
一些输入输出格式
将输出的前面补上0,直到占满指定列宽为止: int a = 4; int n = 3; printf("%0*d",n,a); //用 * 代替位数 输出:004 四舍五入保留五位小数 ans1=(int)(ans1*100000+0.5)/100000.0;
2018-01-25
学习
一些函数
sprintf sprintf()最常见的应用之一莫过于把整数打印到字符串中,如: sprintf(s, “%d”, 123); //把整数123打印成一个字符串保存在s中; sprintf(s, “%8x”, 4567); //小写16进制,宽度占8个位置,右对齐。 atoi(atof)(atol) 功能:把字符串转换成
2018-01-25
学习
同余定理
a≡ b(mod d)a和b是模d同余的。 一. 有定理:如果a≡x(mod d),b≡m(mod d),则a*b≡x*m (mod d )。 下面来说说该定理的应用,我们知道一个数的各个位数之和如果能被3整除那么这个数也能被3整除,如12,因为1+2=3能被3整除,所以12也能被3整除。如果我们利用定律6,就可以找出任何一个数能被另一个数整除的表达式来。如我们用11来试试,11可以表示为10+1
2018-01-25
学习
三点顺序---有向面积
现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针给出的? 一种: 利用矢量叉积判断是逆时针还是顺时针。 设A(x1,y1),B(x2,y2),C(x3,y3),则三角形两边的矢量分别是: AB=(x2-x1,y2-y1), AC=(x3-x1,y3-y1)
2018-01-25
学习
康托展开及逆康托展开
康托展开康托展开表示的是当前排列在n个不同元素的全排列中的名次。比如213在这3个数所有排列中排第3。 那么,对于n个数的排列,康托展开为: 其中表示第i个元素在未出现的元素中排列第几。举个简单的例子: 对于排列4213来说,4在4213中排第3,注意从0开始,2在213中排第1,1在13中排第0,3在3中排第0,即: ,得到的ans是比原数小的数,要得到第几个数应该加一。
2018-01-25
学习
辗转相除法(求最大公约数、扩展欧几里得算法及应用)
求最大公约数原理:gcd(a,b)=gcd(b,a mod b) 辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的: ⒈ 若 r 是 a ÷ b 的余数,且r不为0, 则 gcd(a,b) = gcd(b,r) ⒉ a 和其倍数之最大公因子为 a。 另一种写法是: ⒈ 令r为a/b所得余数(0≤r<b) 若 r= 0,算法结束;b 即为答案。 ⒉ 互换:置 a←b,b←r
2018-01-25
学习
一些细小的点
0.读到文件的结尾,程序自动结束while( ( scanf( “ %d ” ,&a) ) != -1 )while( ( scanf( “ %d ” ,&a) ) != EOF)while( ( scanf( “ %d ” ,&a) ) == 1 )while( ~( scanf( “ %d ” ,&a) ) )读到一个 0 时,程序结束while( scanf(
2018-01-25
学习
1
…
21
22
23
Search
×
keyword