吹泡泡之路(2015.4.26)
来源:互联网 发布:盛光网络与盛世网络 编辑:程序博客网 时间:2024/05/01 13:52
发现最近不管睡得多晚,总能早早爬起来(:з」∠)今天六点多醒的,然后刷手机到八点起床,打开计蒜客忽然想入个键盘,于是就去买了个键盘,顺带写了几句话。
今天的内容从while开始(感觉像重新学了一遍C = =)
几种控制语句
while和for算的是1加到100,do-while算的是1加到num(输入值)。
while循环
#include<iostream>using namespace std;int main(){ int sum=0; int i=1; while(i<=100){ sum=sum+i; i=i+1; } cout<<sum<<endl; return 0;}
Do-while循环
using namespace std;int main(){ int num; cin>>num; int sum=0; int i=1; do{ sum=sum+i; i++; }while(i<=num); cout<<sum<<endl; return 0;}
For循环
#include<iostream>using namespace std;int main(){ int i,sum=0; for(i=1;i<=100;i++){ sum=sum+i; } cout<<sum<<endl; return 0;}
countinue语句
#include<iostream>using namespace std;int main(){ int i,sum=0; for(i=1;i<11;i++){ sum+=i; continue; cout<<i<<endl; } cout<<sum<<endl; return 0;}
测试:判断质数
#include<iostream>using namespace std;bool is_prime(int n){ if(n<2){ return false; } for (int i=2;i*i<=n;i++){ if(n % i == 0){ return false; } } return true;}int main(){ int N; cin>>N; if(is_prime(N)){ cout<<"YES"<<endl; }else{ cout<<"NO"<<endl; } return 0;}
艾玛又不会写了,百度了答案要么就是直接return 0然后break的,要么就是写成函数再判断的,一直搞不清楚怎么在i自增完了之后再输出YES,算法渣渣。
函数
函数声明
#include<iostream>using namespace std;int add(int a,int b);int main(){ int x; x = add(1,2); cout<<x<<endl; return 0;}int add(int a,int b){ return a+b;}
这里直接举先声明后面再实现内容的函数了,到目前为止,看上去和C还是没什么区别= =
递归调用
#include<iostream>using namespace std;int sum(int max);int main(){ cout<<sum(100)<<endl; return 0;}int sum(int max){ if(max>1){ return max+sum(max-1); }else{ return 1; }}
测试:斐波那契数列
斐波那契数列是一种非常有意思的数列,由 0 和 1 开始,之后的斐波那契系数就由之前的两数相加。用数学公式定义斐波那契数列则可以看成如下形式:
F0=0
F1=1
Fn=Fn−1+Fn−2 我们约定Fn表示斐波那契数列的第n项,你能知道斐波那契数列中的任何一项吗?
输入包括一行,包括一个数字N(0≤N≤50)。
输出包括一行,包括一个数字,为斐波那契数列的第N项的值。
#include<iostream>using namespace std;int add(int n){ if(n==0||n==1){ return n; }else{ return add(n-1)+add(n-2); }}int main(){ int N; cin>>N; cout<<add(N)<<endl;}
数组
一维数组
#include <iostream>using namespace std;int main(){ int arr[5]={4,5,3,1,9}; arr[2]=55; int sum=0,i; for(i=0;i<5;i++){ sum+=arr[i]; } cout<<sum<<endl; return 0;}
二维数组
#include<iostream>using namespace std;int main(){ int arr[2][3],arr2[3]={0,0,0}; int i,j; for(i=0;i<2;i++){ for(j=0;j<3;j++){ cin>>arr[i][j]; arr2[j]+=arr[i][j]; } } cout<<arr2[0]<<" "<<arr2[1]<<" "<<arr2[2]<<endl; return 0;}
测试:矩阵翻转
输入第一行包括由空格分开的整数M、N、T(0 < M < 200,0 < N < 200,T=0或1),其中M和N分别表示待处理矩阵的行数与列数,T为0时表示左右翻转,为1时表示上下翻转。
输出包括M行N列,每个数字之间用一个空格分隔,每一行行末均有一个空格,表示的是按照要求翻转后的矩阵。
#include<iostream>using namespace std;int main(){ int M,N,T; cin>>M; cin>>N; cin>>T; int arr[M][N]; int i,j,temp; for(i=0;i<M;i++){ for(j=0;j<N;j++){ cin>>arr[i][j]; } } if(T==0){ for(i=0;i<M;i++){ for(j=0;j<N/2;j++){ temp=arr[i][j]; arr[i][j]=arr[i][N-1-j]; arr[i][N-1-j]=temp; } } }else{ for(j=0;j<N;j++){ for(i=0;i<M/2;i++){ temp=arr[i][j]; arr[i][j]=arr[M-1-i][j]; arr[M-1-i][j]=temp; } } } for(i=0;i<M;i++){ for(j=0;j<N;j++){ cout<<arr[i][j]<<" "; } cout<<endl; } return 0;}
每次做到这个题目,做肯定是能做出来,但总要折腾半天,老是弄混M,N和i,j,哪个代表行哪个代表列,晕死。
待会要去开会了,今天到此结束。
0 0
- 吹泡泡之路(2015.4.26)
- 吹泡泡之路(2015.4.25)
- 谁怕网络吹泡泡
- C#控制台吹泡泡算法
- C#控制台吹泡泡算法
- 面对VC,我们有没有吹“泡泡”?
- C++ Mfc 吹泡泡程序编程实例 下载
- MFC基于单文档制作吹彩色泡泡程序
- 从VC6到VC9移植代码问题总结 from 吹泡泡的小猫
- 数据中心吹起绿色之风
- 【雕程晓技】绘制质感游戏图标UI教程之捏泡泡
- Bubbles Shader in Houdini泡泡泡泡泡泡泡泡泡泡
- 光纤光缆技术之微管气吹技术
- Android动画之萌萌哒蜡烛吹蜡烛动画
- Android动画之萌萌哒蜡烛吹蜡烛动画
- Android动画之萌萌哒蜡烛吹蜡烛动画
- 泡泡屏保
- 泡泡背景
- Java 8新特性探究(五)Base64详解
- Android开发--CardView使用
- unicode的CString转
- 【leetcode】Jump Game II
- WideCharToMultiByte和MultiByteToWideChar函数的用法
- 吹泡泡之路(2015.4.26)
- Ext JS 6 驾临
- 老鼠喝毒水问题
- 第二章 归并排序之C++实现
- 云服务下的安全特点及基础防护
- 字符串逆序
- C#利用接口实现窗体间函数调用
- java中的IO操作总结(一)
- [笔记] EXCEL中的数据透视表含义、用途、何时使用