AC的方法(暴力+直接输出)
查看原帖
AC的方法(暴力+直接输出)
1168995
mkx2023275楼主2023/11/18 09:54

正常方法

#include<bits/stdc++.h>
using namespace std;
int main(){
	for(int i=100;i<=999;i++){
		int j=i*2,k=i*3,vis[10]={0};//标记是否出现
		if(j>999||k>999) continue;//如果不是三位数跳出
		bool flag=0;
		vis[i%10]++;vis[i/10%10]++;vis[i/100]++;
		vis[j%10]++;vis[j/10%10]++;vis[j/100]++;
		vis[k%10]++;vis[k/10%10]++;vis[k/100]++;//标记所有数
		for(int l=1;l<=9;l++){
			if(vis[l]!=1){
				flag=1;
				break;
			}//如果重复则标记跳出
		}
		if(flag==0) printf("%d %d %d\n",i,j,k);//不重复则输出
	}
	return 0;
}

结果为:

192 384 576

219 438 657

273 546 819

327 654 981

然后直接输出

#include<bits/stdc++.h>
using namespace std;
int main(){
	printf("192 384 576\n219 438 657\n273 546 819\n327 654 981");
	return 0;
}

2023/11/18 09:54
加载中...