【洛谷】三连击

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 【洛谷】三连击,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

P1618 三连击(升级版) – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

【洛谷】三连击 


#include <cstring>
#include <iostream>
#include <algorithm>
#define INF 0x3f3f3f3f
#define MAX 5010
using namespace std;

double a, b, c;
int S[11], pos;
bool vis[11];

void dfs(int k)
{
    if(k > 9)
    {
        double aa = 0, bb = 0, cc = 0;
        for(int i = 1; i <= 3; i++) aa = aa * 10 + S[i];
        for(int i = 4; i <= 6; i++) bb = bb * 10 + S[i];
        for(int i = 7; i <= 9; i++) cc = cc * 10 + S[i];
        if((bb/aa==b/a) && (cc/aa==c/a) && (cc/bb==c/b)) cout << aa <<" "<< bb <<" "<< cc << endl, pos = 1;
        return;
    }
    for(int i = 1; i <= 9; i++)
    {
        if(vis[i]) continue;
        S[k] = i; vis[i] = true;
        dfs(k + 1); vis[i] = false;
    }
    return;
}

int main()
{
    cin >> a >> b >> c;
    dfs(1);
    if(pos == 0) cout << "No!!!" << endl;
    return 0;
}


 🏳️‍🌈🏳️‍🌈🏳️‍🌈在这里插入图片描述

 

#include<iostream>
using namespace std;
int main() {
    int i,j,k,m,sum=0;
    int a[10];
 
    for(i=123; i*3<=987; i++) { //由于数字不重复,故区间范围从123-987
        for(m=1; m<10; m++)
            a[m]=0; //全部初始化为0
        a[i/100]=1;
        a[i/10%10]=1;
        a[i%10]=1;
 
        j=i*2;//第二个三位数,与第一个三位数满足1:2的关系
        a[j/100]=1;
        a[j/10%10]=1;
        a[j%10]=1;
         
        k=i*3;//第三个三位数,与第一个、第二个三位数满足1:2:3的关系
        a[k/100]=1;
        a[k/10%10]=1;
        a[k%10]=1;
 
        for(m=1; m<10; m++) 
            sum=sum+a[m];
        if(sum==9) 
            cout<<i<<" "<<j<<" "<<k<<endl;//若恰好为9,说明满足题设,输出
    }
    return 0;
}

Code over!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131357.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!