【AcWing&&牛客】打表找规律

简介: 【AcWing&&牛客】打表找规律

目录

题目1

题目2

 

🍔🍔🍔🍔

题目1

1205. 买不到的数目 - AcWing题库

10.1.png这种题的解法特别妙

方法一(通法)

🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈

打表找到规律

🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈

打表

#include <iostream>
using namespace std;
//给定一个m,是否能用p和q凑出来
bool dfs(int m,int p,int q)
{
    if(m == 0) return true;
    if(m >= p && dfs(m - p,p,q)) return true;
    if(m >= q && dfs(m - q,p,q)) return true;
    return false;
}
int main()
{
    int p,q;
    cin >> p >> q;
    int res = 0;
    for(int i = 1; i <= 1000;i ++)
    {
        if(!dfs(i,p,q)) res = i;
    }
    cout << res << endl;
    return 0;
}

找规律

image.png

#include<iostream>
using namespace std;
int n,m;
int main()
{
    scanf("%d%d",&m,&n);
    printf("%d\n",(n-1)*m-n);
    return 0;
}

先用上面的代码试几个数,找到规律

方法二

参考:AcWing 1205. 超简洁代码+详解 - AcWing

10.2.png

#include<iostream>
using namespace std;
int n,m;
int main()
{
    scanf("%d%d",&n,&m);
    int k=n*m;
    while(k)
    {
        int t=k;
        while(t%m!=0&&t-n>0)t-=n;
        if(t%m!=0&&k%n!=0&&k%m!=0)//这一步就是判断了1、2、3 三个条件
          { 
              printf("%d",k);
              break;
          }
          k--;
    }

题目2

1002-小q的数列_2021秋季算法入门班第二章习题:递归、分治 (nowcoder.com)

10.3.png

打表找规律

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
0 1 1 2 1 2 2 3 1 2 2  3  2  3  3  4  1  2
pow(2,i)-1

代码

#include<iostream>
#include<cmath>
#define ll long long
using namespace std;
ll f(ll n){
  if(n==0){
    return 0;
  }
  else if(n==1){
    return 1;
  }
  else{
    return f(n/2)+f(n%2);
  }
}
int main(){
  ll a[70]={0};
  for(int i=0;i<=63;i++){
    a[i]=pow(2,i)-1;
  }
  int t;
  cin>>t;
  while(t--){
    ll n;
    cin>>n;
    cout<<f(n)<<" "<<a[f(n)]<<endl;
  }
  return 0;
}

Code over!

相关文章
【剑指offer】-跳台阶-08/67
【剑指offer】-跳台阶-08/67
|
10月前
LeedCode_04-斐波那契数列(剑指offer-10)
LeedCode_04-斐波那契数列(剑指offer-10)
|
10月前
蓝桥杯AcWing 题目题解 - 递归与递推
蓝桥杯AcWing 题目题解 - 递归与递推
|
11月前
|
机器学习/深度学习 人工智能 移动开发
|
11月前
|
人工智能 BI
|
11月前
|
机器学习/深度学习 人工智能 移动开发
|
机器学习/深度学习 算法
LeetCode打卡 52八皇后Ⅱ&53最大子序和&54螺旋矩阵
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
98 0
LeetCode打卡 52八皇后Ⅱ&53最大子序和&54螺旋矩阵