4-28:五一本身要奋斗好多东西,别太多lOL,还尼玛撸的郁闷。html
稍一不编程,手、脑壳就生,好比Input.txt................程序员
4-29:实在是差距挺大,加油吧!!算法
GF的言论:1.身为coder,浮躁永远要不得,谨慎缜密永远压于自觉得是的正确...相信事实....编程
2.大牛无非三种人@@数组
3.牛人在不少OJ都不经意地作过几百题,并且题目技术含量广泛比较高,稍微菜一点的刷题户基本上就死盯一个大型OJ弄上他近千题,以刷水题提高排名为主切难题提高实力为辅(转的,说的还算有点对吧...)缓存
4.编程是练出来的....由白书的代码理解后本身敲一遍;不放纵,不浮躁哈...这是理解的比较好的方法,而后相应UVA上面的题,想一日千里也不太现实!函数
5.本身和别人的差距(神马名校了)的确是很大的...至少没有那种氛围、压力、资源,何况又不是你一我的在战斗!post
6.其实感受ACM真的很爽呃...那种比赛的氛围环境与实力的比拼!测试
7.书上得来终觉浅,绝知此事就亲打...spa
8.OJ上提交得注意点,习惯冲动性改一个地方交一次,2-22 1162来了三次超时,我因而明白,吾算法不精,太莽撞.......
9.TY大牛说了通常没有线下打表的题....果真本身code不精....
关于sqrt()
1.1.#INF / inf:这个值表示“无穷大 (infinity 的缩写)”,即超出了计算机能够表示的浮点数的最大范围(或者说超过了 double 类型的最大值)。例如,当用 0 除一个整数时便会获得一个1.#INF / inf值;相应的,若是用 0 除一个负整数也会获得 -1.#INF / -inf 值。
-1.#IND / nan:这个的状况更复杂,通常来讲,它们来自于任何未定义结果(非法)的浮点数运算。"IND"是 indeterminate 的缩写,而"nan"是 not a number 的缩写。产生这个值的常见例子有:对负数开平方,对负数取对数,0.0/0.0,0.0*∞, ∞/∞ 等。简而言之,若是遇到 1.#INF / inf,就检查是否发生了运算结果溢出除零,而遇到 1.#IND / nan,就检查是否发生了非法的运算。
2.sqrt(-10)=0
3.同理1.0/0.0 0.0/0.0
4.但是%d返回0 编译器不会报错
5.1/0系统就崩溃!
5.sqrt是返回double型
关于输出
1.printf("%%d\\n"); 通常状况下的字符转义是用\可是%比较特殊,用%进行转义。
关于实践求Int double的表示范围
1.2147483647 2的31次方-1
-2147483648
double型那就是64次方了呗。。2013-02-16
数据类型若是有n个bits,那么表示范围就是:-2^n - 2^n-1
例如:
byte(8 bits): -2^7 - 2^7-1
short(16 bits): -2^15 - 2^15-1
int(32 bits): -2^31 - 2^31-1
long(64 bits): -2^63 - 2^63-1
int int_min()
{
int n=0,i=0;
while(n>=i)
{
n=i;
i--;
}
return n;
}
int int_max()
{
int n=0,i=0;
while(n<=i)
{
n=i;
i++;
}
return n;
}
关于绝对值函数
abs( int x )是求整数的绝对值的 , fabs( double x )是精确到双精度浮点型的求绝对值的 ,简单的说就是保留的精度位数更高
之后测试实验数据都用重定向呗
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
吾终于明白输出格式是多么的重要了 擦!!
一个换行或空格少了多了都不行...
东大判断回文数
#include<stdio.h> #include<string.h> int main() { char str[200]; int len,i,shit; freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); while(scanf("%s",str)!=EOF) { shit=0;//这一步丢了惋惜 len=strlen(str); for( i=0;i<len/2;i++) if(str[i]!=str[len-1-i]) { shit=1; break; } if(shit==1) printf("NO"); else printf("YES"); printf("\n"); } return 0; } //如今回文数用sprintf最简单 之后也这么作
每一次都要重置0!!!
而不能把0置在循环语句外... 重定向一不当心就忘删了 (永不陷入消极情绪!)
通常最后打上“\n” 还有必定要题目中输入输出的如出一辙,包括大小写神马的,杨哲学长出的那几道题真让我这个菜鸟明白了哈哈!!
scanf("%%")是读写时加%
养成提交OJ时再稍看一眼的习惯,避免一些低级错误,如重定向,神马的
个人getchar函数应用也存在漏洞???? 带缓冲
getchar 的用途是从从标准输入流读取一个字符,读回车符时退出getchar();永远只向缓存中输入一个字符, getchar();的用法不少; 一种就是清空回车符 这种状况通常发生在在循环中涉及到输入的状况 还有一种是某些编译平台(IDE)在运行程序时并无在程序运行后给人看结果的时间 这时候 在程序最后加上getchar()就能形成程序的暂停 给程序员度结果的机会用getchar时,在键盘上按一个字符后,要按回车才能读取进去;用getch时,在键盘上按一个字符立刻就被读取进去,不用按回车,所以能够做为“按任意键继续”的执行语句
我是愈来愈相信WA是必定有BUG的了 这种事情一旦返回了个WA 就立刻考虑本身的错误 毫不会有任何郁闷心理“哎,没错呀”之类
展转相除法递归求最大公约数其实还不会呀
OJ前再浏览一遍看一下有没有垃圾错误。。
百度大神帮忙哈~~~
1 int gcd(int a,int b) 2 { 3 if (0 == a*b) 4 return a+b; 5 if(a%b==0) return b;//这地方有缺陷的 若是b是a的倍数 嗯肯定本身的粗心 而不是没有缘由的错哈 6 else 7 { 8 if(a>b) 9 return gcd(b,a%b); 10 if(a<b) 11 gcd(a,b%a); 12 } 13 } 14 //之后应该这样 看我一行代码解决gcd 15 int gcd(int a,int b) 16 { 17 return b==0?a:gcd(b,a%b); 18 }
OJ上也能够经过时间 长度 内存来大体看一下这道题目本身应如何把握
C语言字符数组结束不加‘\0’结果可能出现些狗屎符号
---恢复内容结束---
关于sqrt()
1.1.#INF / inf:这个值表示“无穷大 (infinity 的缩写)”,即超出了计算机能够表示的浮点数的最大范围(或者说超过了 double 类型的最大值)。例如,当用 0 除一个整数时便会获得一个1.#INF / inf值;相应的,若是用 0 除一个负整数也会获得 -1.#INF / -inf 值。
-1.#IND / nan:这个的状况更复杂,通常来讲,它们来自于任何未定义结果(非法)的浮点数运算。"IND"是 indeterminate 的缩写,而"nan"是 not a number 的缩写。产生这个值的常见例子有:对负数开平方,对负数取对数,0.0/0.0,0.0*∞, ∞/∞ 等。简而言之,若是遇到 1.#INF / inf,就检查是否发生了运算结果溢出除零,而遇到 1.#IND / nan,就检查是否发生了非法的运算。
2.sqrt(-10)=0
3.同理1.0/0.0 0.0/0.0
4.但是%d返回0 编译器不会报错
5.1/0系统就崩溃!
5.sqrt是返回double型
关于输出
1.printf("%%d\\n"); 通常状况下的字符转义是用\可是%比较特殊,用%进行转义。
关于实践求Int double的表示范围
1.2147483647 2的31次方-1
-2147483648
double型那就是64次方了呗。。
数据类型若是有n个bits,那么表示范围就是:-2^n - 2^n-1
例如:
byte(8 bits): -2^7 - 2^7-1
short(16 bits): -2^15 - 2^15-1
int(32 bits): -2^31 - 2^31-1
long(64 bits): -2^63 - 2^63-1
int int_min()
{
int n=0,i=0;
while(n>=i)
{
n=i;
i--;
}
return n;
}
int int_max()
{
int n=0,i=0;
while(n<=i)
{
n=i;
i++;
}
return n;
}
关于绝对值函数
abs( int x )是求整数的绝对值的 , fabs( double x )是精确到双精度浮点型的求绝对值的 ,简单的说就是保留的精度位数更高
之后测试实验数据都用重定向呗
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
吾终于明白输出格式是多么的重要了 擦!!
一个换行或空格少了多了都不行...
东大判断回文数
#include<stdio.h>
#include<string.h>
int main()
{
char str[200];
int len,i,shit;
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
while(scanf("%s",str)!=EOF)
{
shit=0;//这一步丢了惋惜
len=strlen(str);
for( i=0;i<len/2;i++)
if(str[i]!=str[len-1-i])
{
shit=1;
break;
}
if(shit==1)
printf("NO");
else printf("YES");
printf("\n");
}
return 0;
}
每一次都要重置0!!!
而不能把0置在循环语句外... 重定向一不当心就忘删了 (永不陷入消极情绪!)
通常最后打上“\n” 还有必定要题目中输入输出的如出一辙,包括大小写神马的,杨哲学长出的那几道题真让我这个菜鸟明白了哈哈!!
scanf("%%")是读写时加%
养成提交OJ时再稍看一眼的习惯,避免一些低级错误,如重定向,神马的
个人getchar函数应用也存在漏洞???? 带缓冲
getchar 的用途是从从标准输入流读取一个字符,读回车符时退出getchar();永远只向缓存中输入一个字符, getchar();的用法不少; 一种就是清空回车符 这种状况通常发生在在循环中涉及到输入的状况 还有一种是某些编译平台(IDE)在运行程序时并无在程序运行后给人看结果的时间 这时候 在程序最后加上getchar()就能形成程序的暂停 给程序员度结果的机会用getchar时,在键盘上按一个字符后,要按回车才能读取进去;用getch时,在键盘上按一个字符立刻就被读取进去,不用按回车,所以能够做为“按任意键继续”的执行语句
我是愈来愈相信WA是必定有BUG的了 这种事情一旦返回了个WA 就立刻考虑本身的错误 毫不会有任何郁闷心理“哎,没错呀”之类
展转相除法递归求最大公约数其实还不会呀
OJ前再浏览一遍看一下有没有垃圾错误。。
百度大神帮忙哈~~~
int gcd(int a,int b)
{
if (0 == a*b)
return a+b;
if(a%b==0) return b;//这地方有缺陷的 若是b是a的倍数 嗯肯定本身的粗心 而不是没有缘由的错哈
else
{
if(a>b)
return gcd(b,a%b);
if(a<b)
gcd(a,b%a);
}
}
OJ上也能够经过时间 长度 内存来大体看一下这道题目本身应如何把握
C语言字符数组结束不加‘\0’结果可能出现些狗屎符号]
要想用freopen 得加上#include<stdio.h>