SuperCheng @ 2023-03-07 21:29:57
刚接触算法,代码纯靠感觉写,只过了6、7,求大佬指点
#include <iostream>
#include <string>
#define ROM 1000
using namespace std;
//检查一个数字里面是否有重复的
bool checkint(int num) {
if (num / 100 == num / 10 % 10 || num / 10 % 10 == num % 100 % 10 || num / 100 == num % 100 % 10) return true;
return false;
}
//判断第二个和第三个数字中的每一个数字是否在第一个数字中出现
bool checkre(int num, int num1) {
string a = to_string(num);
string b = to_string(num1);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++)
if (a[i] == b[j])
return false;
}
return true;
}
//检查是否第二个和第三个数字是否是小数
bool checkf(float num) {
int n;
n = num;
if (num - n == 0) return false;
return true;
}
int main() {
//定义成浮点型一是为了防止用户输入小数,二是为了后面好判断是否为整数
float a, b, c;
int num[ROM],result[ROM], num1[ROM], num2[ROM], n = 0, n1 = 0, n2 = 0, n3 = 0;
bool judge = true;
cin >> a >> b >> c;
if (a > b || b > c || a > c ) return 0;
for (int i = 123; i <= 987; i++) {
if (!checkint(i)) {
num[n] = i;
n++;
}
}
for (int j = 0; j < n; j++)
{
//判断是否满足为整数和数字不重复
if (!checkf(b / a * num[j]) && !checkint(b / a * num[j]) && b / a * num[j] < 1000);
else continue;
if (!checkf(c / a * num[j]) && !checkint(c / a * num[j]) && c / a * num[j] < 1000);
else continue;
num1[n2] = b / a * num[j];
num2[n3] = c / a * num[j];
result[n1] = num[j];
n1++;
n2++;
n3++;
}
for (int k = 0; k < n1; k++) {
if (checkre(result[k], num1[k]))
if (checkre(result[k], num2[k]))
if (checkre(num1[k], num2[k])) {
cout << result[k] << " " << num1[k] << " " << num2[k] << endl;
judge = false;
}
}
if (judge) cout << "NO!!!";
return 0;
}
谢谢大佬们
by tu_huang_di @ 2023-03-10 20:59:03
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int a,b,c;
cin>>a>>b>>c;
bool flag=0;
for(int i=1;i<4;i++)
{
for(int ii=1;ii<10;ii++)
{
for(int iii=1;iii<10;iii++)
{
for(int iiii=1;iiii<7;iiii++)
{
for(int iiiii=1;iiiii<10;iiiii++)
{
for(int iiiiii=1;iiiiii<10;iiiiii++)
{
for(int iiiiiii=1;iiiiiii<10;iiiiiii++)
{
for(int iiiiiiii=1;iiiiiiii<10;iiiiiiii++)
{
for(int iiiiiiiii=1;iiiiiiiii<10;iiiiiiiii++)
{
if(i!=ii&&i!=iii&&i!=iiii&&i!=iiiii&&i!=iiiiii&&i!=iiiiiii&&i!=iiiiiiii&&i!=iiiiiiiii&&ii!=iii&&ii!=iiii&&ii!=iiiii&&ii!=iiiiii&&ii!=iiiiiii&&ii!=iiiiiiii&&ii!=iiiiiiiii&&iii!=iiii&&iii!=iiiii&&iii!=iiiiii&&iii!=iiiiiii&&iii!=iiiiiiii&&iii!=iiiiiiiii&&iiii!=iiiii&&iiii!=iiiiii&&iiii!=iiiiiii&&iiii!=iiiiiiii&&iiii!=iiiiiiiii&&iiiii!=iiiiii&&iiiii!=iiiiiii&&iiiii!=iiiiiiii&&iiiii!=iiiiiiiii&&iiiiii!=iiiiiii&&iiiiii!=iiiiiiii&&iiiiii!=iiiiiiiii&&iiiiiii!=iiiiiiii&&iiiiiii!=iiiiiiiii&&iiiiiiii!=iiiiiiiii)
{
if(b/a(i100+ii10+iii)==iiii100+iiiii10+iiiiii&&c/a(i100+ii10+iii)==iiiiiii100+iiiiiiii10+iiiiiiiii)
{
cout<<i100+ii10+iii<<" "<<iiii100+iiiii10+iiiiii<<" "<<iiiiiii100+iiiiiiii10+iiiiiiiii<<"\n";
flag=1;
}
}
}
}
}
}
}
}
}
}
}
if(flag==0)
cout<<"No!!!";
return 0;
}
by tu_huang_di @ 2023-03-10 21:00:34
只过了80分