1.while循环
int i=1,sum=0;
while(i <=100)
{
sum = sum + i;
i++;
}
cout << sum << endl;
return 0;
2.用while实现斐波那契数列
int a,b;
a = 1;
b = 1;
int n;
cin >> n;
int i=0
while(i<n-1)
{
int c = a + b ;
a = b ;
b = c ;
i ++ ;
}
cout << a << endl;
3.for循环
for(初始化语句-1;条件语句-2;表达式-3){循环体-4} 运行路径:1->2->4->3->2
for(int i=0;i<10;i++)
{
cout << i << endl;
}
3.1 求1-100的和
int num=0;
for (int i=1;i<=100;i++){
num=num+i;
}
cout << num << endl;
3.2 用for实现斐波那契数列
int n,c;
cin >> n;
int a = 1;
int b = 1;
for(int i=0;i<n-1;i++){
c = a + b;
a = b;
b = c;
}
cout << a <<endl; //从a开始
4.跳出循环
4.1 break
int sum=0;
for(int i=1;i<=100;i++)
{
if(i>50) break;
sum = sum+i;
}
cout << sum << endl;
4.2 continue
int sum2=0;
for(int i=1;i<=100;i++)
{
int x = i;
x = x +i ;
if(i==50) continue;
sum2 = sum2+x;
}
cout << sum2 << endl;
5.判断是否是质数
//判断n是不是质数
int n;
cin >> n;
bool is_prime = true;
for(int i=2;i<=n-1;i++){
if(n%i==0)
{
is_prime = false;
break;
}
}
if(is_prime) cout << "yes" << endl;
else cout << "no" << endl;
6.累加奇偶和
int sum =0 ;
for(int i=1;i<=100;i++)
{
if(i%2) continue;
sum = sum+i;
}
cout << sum << endl;
7.嵌套多层循环
int n;
cin >> n;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cout << "* ";
}
cout << endl;
}
8.打印数字矩阵
int n;
cin >> n;
for(int i = 0 ,k=1; i < n; i++) {
for(int j = 0; j < n; j++) {
// cout << k << " ";
printf("%5d ",k);
k++;
}
cout << endl;
}
9.打印1-100内所有质数
for(int i=2;i<=100;i++){
bool is_prime = true;
for(int j=2;j<i;j++){
if(i%j==0){
is_prime = false;
break;
}
}
if(is_prime == true) cout << i << endl;
}
然而实际中,容易遇到超时的情况,这里给一种基础的优化
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >>n;
for(int i=1;i<=n;i++)
{
int num;
bool is_prime = true;
cin >> num;
for(int i=2;i*i<=num;i++){
if(num%i==0){
is_prime = false;
break;
}
}
if(is_prime) cout << num << " is prime" << endl;
else cout << num << " is not prime" << endl;
}
}
10.打印棱形
10.1 暴力法
int n, space, stars;
cin >> n;
//计算中间行,用于确定最大星号数
int mid = (n / 2) + 1;
// 打印上半部分
for (int i = 1; i <= mid; i++) {
space = mid - i;
stars = 2 * i - 1;
for (int j = 1; j <= space; j++) {
cout << " ";
}
for (int j = 1; j <= stars; j++) {
cout << "*";
}
cout << endl;
}
// 打印下半部分
for (int i = mid - 1; i >= 1; i--) {
space = mid - i;
stars = 2 * i - 1;
for (int j = 1; j <= space; j++) {
cout << " ";
}
for (int j = 1; j <= stars; j++) {
cout << "*";
}
cout << endl;
}
10.2 曼哈顿法
这个方法有点复杂,后续看记忆性再写一篇详细的推导过程
int n;
cin >> n;
int x = n /2 ,y = n/2;
for(int i=0;i<n;i++)
{
for(int j =0;j<n;j++)
{
if(abs(i-x)+abs(j-y)<=n/2)
cout << "*";
else
cout << " ";
}
cout << endl;
}