0
点赞
收藏
分享

微信扫一扫

【算法系列】常见思路、技巧(实时更新)

殇感故事 2022-02-26 阅读 47

常见算法套路C++编程

基础技巧

字符串输入

char a[N];
cin >> a+1;

存储多个字符串

char g[N][N];
for(int i=1;i<=n;i++)
	cin >> g[i];//cin >> g[i]+1;

前缀和技巧

注意:前缀和存储的数组下标从1开始!!
开辟一个数组:s[N]

for(int i=1;i<=n;i++)
{
    cin >> s[i];
    s[i]+=s[i-1];
}
for(int i=1;i<=n;i++) cout << s[i] <<endl;

开辟两个数组:a[N]和s[N]

for(int i=1;i<=n;i++) cin >> a[i];
for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];
for(int i=1;i<=n;i++) cout << s[i] <<endl;

输出技巧:找规律

在这里插入图片描述

printf("%c",'A'+abs(i-j));

回文数

在这里插入图片描述

for(int i=10;i<=99;i++)
{
    int t=i,x=i;
    for(int i=0;i<2;i++)
    {
        t=t*10+x%10;
        x/=10;
    }
    printf("%d\n",t);
}

杨辉三角形

在这里插入图片描述

for(int i=1;i<=n;i++)
{
       a[i][1]=1;
       a[i][i]=1;
}

for(int i=3;i<=n;i++)
{
      for(int j=2;j<i;j++)
            a[i][j]=a[i-1][j-1]+a[i-1][j];
}

for(int i=1;i<=n;i++)
{
       for(int j=1;j<=i;j++)
       {
            cout << a[i][j] <<" ";
       }
       cout << endl;
}

01字串

在这里插入图片描述

#include <iostream>
using namespace std;
int main()
{
    for(int i=0;i<32;i++)
        {         
            cout<<i%32/16<<i%16/8<<i%8/4<<i%4/2<<i%2<<endl;    
        }
    return 0;
}

闰年判断

在这里插入图片描述

if(year%100 && year%4==0 || year%400==0) printf("yes\n");
else printf("no\n");

Fibonacci数列

在这里插入图片描述

int main()
{
    cin >> n;
    int a=1,b=1;
    int t;
    for(int i=3;i<=n;i++)
    {
        t=(a+b)%10007;
        b=a;
        a=t;
    }
    cout << t%10007 <<endl;
}

计算字符串的长度

#include<cstring>
int la=strlen(a+1);

举报

相关推荐

0 条评论