杭电总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.0
如果要循环输入n个数,可用如下方法:
{
While(~scanf(“%d”,&n))
{
For(i=1;i<=n;i++)
Scanf(“%d”,&a);
}
}
1.1
或者:
While(~scanf(“%d”,&n))
{
While(n--)
}
Scanf(“%d”,&m);
}
}
2.0(1)
如果输出好几个数,则应在数于数之间添加空格,如:Printf(“%d %d %d”,a,b,c);
2.0(2)
或加一个判断:
For(i=1;i<=n;i++)
{
If(i=n)printf(“%d”,a[i]);
Else printf(“%d ”,a[i]);
}
2.0(3)
详见2010
2.0(4)
输出数组:
For(i=0;i Printf(“%d ”,a[i]); Printf(“%d\n”,a[z-1]); 2.0(5) 输出时要求两个数之间用空格,可用如下方法:Printf(“%d”,a[0]); For(i=1;i Scanf(“%d”,a[i]); Printf(“\n”); 4.0 当输入多组数据并处理时,可减少变量语句的使用:While(m--) { While(n--) { Scanf(“%d”,&a); If()… } } 5.0 求余新法(详见信息参考杭电21) 6.0 不要在for语句中定义类型 __int64不支持,可以用long long代替 7.0 递推常见公式: (1)F(n)=(F(n-1)+1)*2(猴子吃桃)(2)F(n) = n(n+1)/2 +1;或F(1)=2;,F(n) = F(n-1)+n;(直线切圆) (3)F(n) = 2 n^2 –n + 1(折线) 8.0 求阶乘位数: 概率论里有一个斯特林公式: n!≈Sqrt((2*π*n)*(n/e)^n) n很大,且精确度要求不高时可以一试。 π=3.1415926535897…… e=2.7182818283……9.0 比较大小,然后插入一部分数据 详见2025 10.0 控制输入行数,跳到下一行 While(~scanf(“%d\n”,&n)) 11.0 差集定义:一般地,设A,B是两个集合,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A. B,我们把集合{x/x∈A,且x¢B}叫做A与B的差集,记作A-B。 12.0 多边形求面积公式: X=X1,Y=Y1; for() { Scanf(“X2,Y2”) SUM+=XI*Y2-Y1*X2; X1=X2;Y1=Y2; } (SUM+=(X1*Y-X*Y1))/2; 13.0 简单输出的错误: #include main() { int z[60]={0,3,6,6},x,c; while(~scanf("%d",&x)) { for(c=4;c<=x;c++) z[c]=z[c-1]+2*z[c-2]; printf("%d\n",z[x]);//如果是z[c]则不能输出这个却结果// } } 14.0 格式:__int64 输入/输出%I64d 15.0 错排公式为 (1.0)f(n)=(n-1)*(f(n-1)+f(n-2)).特别的 f(1)=0,f(2)=1 (2.0)M(n)=n!(1/2!-1/3!+…..+(-1)^n/n!)(附文档一) 16.0 错排于排列组合的结合问题:详见2049 17.0 将字符串转化成数字: ato f():将字符串转换为双精度浮点型ato i():将字符串转换为整型值。 ato l():将字符串转换为长整型值strt od():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。strt ol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。strto ul():将字符串转换为无符号长整型值,并报告不能被转换的所有 剩余数字。 函数说明atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr 字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。 范例/* 将字符串a 与字符串b转换成数字后相加*/ #include #include main() { char *a=”-100.23”; char *b=”200e-2”; (1)float c; (2)c=atof(a)+atof(b); printf(“c=%.2f\n”,c); System(“pause”); } 执行c=-98.23 注:(1)改成int型(2)改成atoi就