首页 > 其他分享 >带分数(递归)//每日打卡 1

带分数(递归)//每日打卡 1

时间:2023-05-08 19:33:36浏览次数:53  
标签:calc num 递归 int res 带分数 used 打卡 include

 

#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>

using namespace std;

const int N = 30;

int sum,m;
int num[N];
bool used[N];
int cnt;


int calc(int l,int r) //分成三段每一段的值a,b,c 分别算出
{

int res = 0;

for(int i = l;i <= r;i ++ )
{
res = res*10 + num[i];
}

return res;

}

void dfs(int u) //u表示自己带入数组的次数
{

int a,b,c;
if(u > 8) //大于 8 9次循环全部代入计算a,b,c计算
for(int i = 0;i < 7;i ++ )
for(int j = i + 1;j < 8;j ++ ){
a = calc(0,i);
b = calc(i+1,j);
c = calc(j+1,8);
if(c*sum - a*c == b){
cnt ++;
}
}

for(int i = 1;i <= 9;i ++ ) //全排列 1 ~ 9 方便“暴力”切割
{
if(!used[i])
{
num[u] = i;
used[i] = 1;
dfs(u + 1);
used[i] = 0;
}
}

}

int main()
{
cin >> sum;

dfs(0);

cout << cnt;

return 0;
}

 

//暴力算法

 

标签:calc,num,递归,int,res,带分数,used,打卡,include
From: https://www.cnblogs.com/poemgranate/p/17382907.html

相关文章

  • 每日打卡-18
    一.问题描述给定两个升序排序的有序数组A和B,以及一个目标值x。数组下标从0开始。请你求出满足A[i]+B[j]=x的数对(i,j)。二.设计思路i指针从a数组从前往后开始遍历j指针从b数组从后往前开始遍历若a[i]+b[j]>k说明要缩小区间使和变小即j–,反之i++三.......
  • 打卡第十七天
    内联函数求圆的面积一、1.定义一个函数作为求圆面积的内联函数二、三、#include<iostream>usingnamespacestd;constdoublepai=3.1415926;inlinedoublemianji(doubler){ returnpai*r*r;}intmain(){ intR; cin>>R; doublearea=mianji(R); cout<<""<<area&......
  • c++打卡练习(22)
    判断一个数是不是完数流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ intN,i,j,S; cin>>N; for(i=2;i<=N;i++){ S=0; for(j=1;j<=(i/2);j++){ if(i%j==0){ S+=j; } if(S==i){ cout<<S<<""<<"is......
  • 打卡12
    求车速#include<stdio.h>intmain(){ inta[5],i; longintb,c; for(b=95860;;b++){ for(i=0,c=100000;c>=10;i++){ a[i]=(b%c)/(c/10); c/=10; } if((a[0]==a[4])&&(a[1]==a[3])){ printf("里程表上出现的新的对称数......
  • 5.8打卡
    #include<bits/stdc++.h>usingnamespacestd;voidswap(int&a,int&b){intt=a;a=b;b=t;}intmain(){intx=5,y=10;cout<<"x="<<x<<"y="<<y<<endl......
  • 打卡19
    3.7高次方的尾数 根据乘法的规律可以看出来:乘积的后三位仅仅和乘数和被乘数的后三位有关;所以只看最后三位即可; #include<bits/stdc++.h>usingnamespacestd;intmain(){ intans=1; intx,y;cin>>x>>y; for(inti=0;i<x;i++) { ans=(ans*y)%1000; } cout<<ans<<end......
  • 打卡9.(偏移量)
    #图解#代码##java代码实现importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=sc.nextInt(),m=sc.nextInt();int[][]q=newint[n][m];//偏移量......
  • 5月7日打卡
    题目描述:微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,......
  • 5.7打卡
    一、问题描述:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。二、设计思路:根据问题描述,该问题可以转化为:给定整数A,判断A是否有亲密数。为解决该问题,首先定义变量a,并为其赋初值为......
  • LeetCode 周赛 344(2023/05/07)手写递归函数的固定套路
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。今天下午有力扣杯战队赛,不知道官方是不是故意调低早上周赛难度给选手们练练手。往期周赛回顾:LeetCode单周赛第343场·结合「下一个排列」的贪心构造问题周赛概览T1.找出不......