[NOIP1998 普及组] 三连击
思路
想一想桶
得到三个数之后把每一位依次存入桶
然后遍历这个桶,看哪一位为\(0\)
代码
// 语言:C++
#include <iostream>
#include <cstring> //memset
using namespace std;
int main()
{
for(int i=123;i<=987/3;i++)
{
int a=i,b=2*i,c=3*i;
int cnt[10];
memset(cnt,0,sizeof(cnt)); //清零数组
cnt[a%10]++; //取个位
cnt[a/10%10]++; //取十位
cnt[a/100]++; //取百位
cnt[b%10]++; //取个位
cnt[b/10%10]++; //取十位
cnt[b/100]++; //取百位
cnt[c%10]++; //取个位
cnt[c/10%10]++; //取十位
cnt[c/100]++; //取百位
bool flag=true;
for(int i=1;i<=9;i++) //看哪个数字没有用上
if(cnt[i]==0) flag=false;
//输出
if(flag==true) cout<<a<<" "<<b<<" "<<c<<" "<<endl;
}
return 0;
}
标签:连击,int,题解,memset,123,include
From: https://www.cnblogs.com/redhairsteve/p/17690204.html