🏆今日学习目标:
🍀完成三连击题目
✅创作者:贤鱼
题目
将 1,2,…,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1 : 2 : 3 的比例,试求出所有满足条件的 3 个三位数
输出格式
若干行,每行 33 个数字。按照每行第 11 个数字升序排列。
思路
可以发现,这道题的数据是由范围的,我们大概可以将数据范围定在==123-499==,一个循环从==123-499==,然后每一位单独拆开,并且将其 2和3,得出的数组如果1-9全部都有,那么就说明符合题意
AC题解
#include<cmath>
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[10];
int main(){
for(int i=123;i<=399;i++){
memset(a,0,sizeof(a));
a[i%10]=a[i/10%10]=a[i/100]=a[i*2%10]=a[i*2/10%10]=a[i*2/100]=a[i*3%10]=a[i*3/10%10]=a[i*3/100]=1;
int c=0;
for(int j=1;j<=9;j++){//判断是否每一位数字都有
c+=a[j];
}
if(c==9){//有的话说明符合题意直接输出
cout<<i<<" "<<i*2<<" "<<i*3<<endl;
}
}
}
==如果对您有帮助的话可以订阅一下专栏,持续更新奥==