
C-NOTE
Eric_keke
这个题你可以不AC,但你一定要WA的漂亮!
展开
-
用下面公式求π:
π/4=1-1/3+1/5-1/7…+1/(4n-3)-1/(4n-1)首先,右面式子一正一负,可用pow(x,y)函数; 分母为奇数,可用2*i-1来表示,可用for语句来决定精度! 代码如下:#include<stdio.h>#include<math.h>//调用数学函数int main(){ int i; double a=0,b; for(i=原创 2015-03-25 21:27:06 · 1150 阅读 · 0 评论 -
奇偶剪枝
这里我来讲一下搜索中要用到的奇偶剪枝的原理:看张图,没障碍物#时,S到E的最短路长为6,但是当有障碍物时,就要绕行了看这张图,黑色为最短路径,当他绕行(红色加蓝色部分)时,其中蓝色部分其实还是最短路径部分平移来的,所以多走的步数也就是红色部分对于红色部分我们可以分为两部分,一部分是远离最短路径的步数,另一部分是回到最短路径的部分,他们一定是对称的,所以多走的步数一定原创 2015-09-17 23:27:10 · 1410 阅读 · 0 评论 -
求N!的位数(斯特林公式)
斯特林公式ln N ! =NlnN-N+0.5 * ln(2* N*pi)要想求有多少位,将他换成以10为底便可!利用换底公式得lnN!/ln10=log10N!把式子取整形加1就是位数!可以参考hdu1018题!原创 2015-08-21 08:56:14 · 4984 阅读 · 0 评论 -
字符变量——转义字符
转义字符#include#includeint main(){printf("\101 \x42 C\n");printf("I say:\"How are you?\"\n");printf("\a");return 0;}转义字符使用\后加字符或者ascii码的形式表示,比如\a表示响铃,\101表示A等,亲手实验一下,很有趣的!原创 2015-03-21 10:28:07 · 1279 阅读 · 0 评论 -
A/B的困扰
在学会简单A+B后,在实验A/B时遇到了下面的问题。#include#includeint main(){int a,b;scanf("%d%d",&a,&b); printf("%d\n",a/b);return 0;} 运行结果如下原来1.6属于实型数据,必须改成实型数据才能输出正确结果。#include#includeint m原创 2015-03-21 10:04:58 · 495 阅读 · 0 评论 -
强制类型转换
如果运算符两边的数据类型不统一,则较低类型的需要转化成较高类型,再参加运算。 运算符的高低如下:char,short→int→unsigned→long→double←float#include#includeint main(){float f=5.97;printf("(int)f=%d\n",(int)f);printf("f=%f\原创 2015-03-22 21:14:52 · 754 阅读 · 0 评论 -
程序A+B问题(一次输入和多次输入)
这是早就会写的题,把它整理一下,比较容易。➀一次输入数据,计算A+B#include#includeint main(){int a,b;scanf("%d%d",&a,&b);printf("%d\n",a+b);return 0;}➁多次输入数据,直至遇到EOF#include#includeint main()原创 2015-03-21 08:44:06 · 1228 阅读 · 0 评论 -
定义符号常量#define
定义符号常量 当我们不止一次用到某个符号常量时,常选择对符号变量进行定义,这样就能当成一般常量来用.#include#include#define PI 3.1415926int main(){double r,area,c;scanf("%lf",&r);area=PI*r*r;c=2*PI*r;printf("area=%.6lf,c=%.6lf\原创 2015-03-21 13:14:20 · 6274 阅读 · 0 评论 -
break语句的使用
先举一个简单点的例子#include<stdio.h>#include<stdlib.h>int main(){ float a,b; char c; printf("input expression:a+(-,*,/)b\n"); scanf("%f%c%f",&a,&c,&b); switch(c) { case '+':pr原创 2015-03-27 13:00:11 · 568 阅读 · 0 评论 -
判断一个数是否为素数
给出一个数m,判断其是否为素数 我这是用一个比较笨蛋的方法,以后会继续更新好的方法的!#include<stdio.h>#include<stdlib.h>int main(){ int a,i; scanf("%d",&a); for(i=2;i<a;i++) { if(a%i==0)//将2到a之间的数取遍,看第一个能被2整除的数是否为为它原创 2015-03-25 22:32:45 · 684 阅读 · 0 评论 -
背包九讲
目录第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品第九讲 背包问题问法的变化附:USACO中的背包问题前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的转载 2015-11-18 21:06:37 · 812 阅读 · 0 评论