随笔分类 -  【算法竞赛入门经典】

算法竞赛入门经典 3.1 数组
摘要://3.1 数组 //程序3-1 逆序输出 #include<iostream> using namespace std; const int MAX=100+10; //据说这样声明,是为了保险 int a[MAX]; int main() { int i,x,n=0; while(cin>>x) a[n++]=x; //将每一个值赋给数组,下标每次增加1 for(i=n-1;i>=1;i--) //逆序输出 cout<<a[i]<<" "<<endl; cout<<a[0]<<en 阅读全文

posted @ 2012-03-27 22:15 spring学习笔记 阅读(329) 评论(1) 推荐(0)

算法竞赛入门经典 第二章 上机练习(C++代码)
摘要://习题2-1 位数(digit) //输入一个不超过10^9的正整数,输出它的位数。例如12735的位数是5. #include<iostream> using namespace std; int main() { int n,i=0; cin>>n; for(;n>0;) { n=n/10; i++; } cout<<i<<endl; } //水仙花数(daffodil) //输出100~999中所有的水仙花数。若3位数ABC满足ABC=A^2+B^2+C^2,则称其为水花数 //例如153=1^3+5^3+3^3,所以153是水仙花 阅读全文

posted @ 2012-03-27 20:47 spring学习笔记 阅读(642) 评论(0) 推荐(0)

算法竞赛入门经典 2.3 文件操作
摘要://例题2-4 整数统计(C语言) //输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。 //数据统计(重定向版) #define LOCAL //定义符号 #include<stdio.h> #define INF 1000000000 int main() { #ifdef LOCAL freopen("data.in","r",stdin); //调用freopen函数用于打开文件,这里有三个参数 //第一个参数为文件名,第二个参数为打开方式(这里是打开一个用于读取的文本文件) //第三个参数是文件流(标准输入) fre 阅读全文

posted @ 2012-03-25 20:05 spring学习笔记 阅读(195) 评论(0) 推荐(0)

算法竞赛入门经典 2.2 循环结构程序设计
摘要://例题2-2 3n+1问题 //猜想:对于任意大于1的自然数n,若n为奇数,则将n变成3n+1,否则变成一半 //经过若干次这样的变换,一定会使n变成1.例如3->10->5->16->8->4->2->1 //输入n,输出变换的次数。n≤10^9. //样例输入:3 //样例输出:7 #include<iostream> using namespace std; int main() { int n,count=0; //初始count=0 cin>>n; while(n>1) { if(n%2==1) n=n*3+1 阅读全文

posted @ 2012-03-25 19:31 spring学习笔记 阅读(206) 评论(0) 推荐(0)

算法竞赛入门经典 2.1 for 循环
摘要://程序2-1 输出1,2,3,……n的值 #include<iostream> using namespace std; int main() { int i,n; cin>>n; for(i=1;i<=n;i++) cout<<i<<endl; return 0; } //aabb为完全平方数(即前两位相同,后两位相同) //程序2-2 7744问题(1) #include<iostream> #include<cmath> using namespace std; int main() { int a,b; d 阅读全文

posted @ 2012-03-25 19:27 spring学习笔记 阅读(186) 评论(0) 推荐(0)

算法竞赛入门经典 第一章 上机练习(C++代码)
摘要://平均数(average) //输入3个整数,输出它们的平均值,保留3位小数。 #include<iostream> #include<iomanip> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; double average=(a+b+c)/3; //三个数的和除以它们的个数为平均值 cout<<setiosflags(ios::fixed)<<setprecision(3)<<average<<endl; r 阅读全文

posted @ 2012-03-24 16:47 spring学习笔记 阅读(630) 评论(0) 推荐(0)

算法竞赛入门经典 1.5 实验题目上机
摘要://1.5 小结与习题 //数据类型实验(C++) //实验A1:表达式11111*11111的值是多少?把5个1改成6个1呢?9个1呢? #include<iostream> using namespace std; int main() { cout<<11111*11111<<endl; //5个1在范围内,结果为123454321 cout<<111111*111111<<endl; //6个1整型常量溢出 cout<<111111111*111111111<<endl;//整型常量溢出,编译出错 re 阅读全文

posted @ 2012-03-24 12:34 spring学习笔记 阅读(344) 评论(0) 推荐(0)

算法竞赛入门经典 1.4 分支结构程序设计
摘要://例题1-4 鸡兔同笼 //已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。 //如果无解,则输出“No answer” //样例输入:14 32 //样例输出:12 2 //样例输入:10 16 //样例输出:No answer #include<iostream> using namespace std; int main() { int a,b,n,m; cin>>n>>m; a=(4*n-m)/2; b=n-a; if(m%2==1||a<0||b<0) cout<<"No answer 阅读全文

posted @ 2012-03-24 10:15 spring学习笔记 阅读(219) 评论(0) 推荐(0)

算法竞赛入门经典 1.3 顺序结构程序设计
摘要://程序1-6 三位数反转(1) #include<iostream> using namespace std; int main() { int n; cin>>n; cout<<n%10<<n/10%10<<n/100<<endl; return 0; } //三位数反转(2) #include<iostream> using namespace std; int main() { int n,m; cin>>n; m=(n%10)*100+(n/10%10)*10+(n/100); cout& 阅读全文

posted @ 2012-03-24 09:31 spring学习笔记 阅读(203) 评论(0) 推荐(0)

算法竞赛入门经典 1.2 变量及输入
摘要://程序1-4 A+B问题(C语言) #include<stdio.h> int main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); return 0; } //C++语言 #include<iostream> using namespace std; int main() { int a,b; cin>>a>>b; cout<<a+b<<endl; return 0; } //程序1-5 圆柱体的表面 阅读全文

posted @ 2012-03-23 22:13 spring学习笔记 阅读(251) 评论(0) 推荐(0)

算法竞赛入门经典 1.1 算术表达式
摘要://计算并输出1+2的值(C++) #include<iostream> using namespace std; int main() { cout<<1+2<<endl; //结果为3 return 0; } //计算并输出3-4的结果 #include<iostream> using namespace std; int main() { cout<<3-4<<endl; //结果为-1 return 0; } //计算并输出5X6的结果 #include<iostream> using namespac 阅读全文

posted @ 2012-03-23 22:12 spring学习笔记 阅读(203) 评论(0) 推荐(0)