2 条题解
-
0
#include<bits/stdc++.h> using namespace std; long n,i,s,j,x,k; long pd(long n)//判素 { if(n<2)return 0; for(long i=2;i<=sqrt(n);i++)if(n%i==0)return 0; return 1; } int main() { for(i=100;i<1000;i++)//简单枚举 if(i%10!=i/100&&i/100!=i/10%10&&i%10!=i/10%10&&pd(i/10%10+i/100)==0&&i/10%10>(i/100+i%10)) { cout<<i<<' ';s++; if(s%8==0)cout<<endl; } return 0; }
-
0
这题是一道“提交答案题”。
题目:一个三位数,各位数字互不相同,十位数字比个位、百位数字之和还要大,且十位、百位数字之和不是质数。编程找出所有符合条件的三位数。
思路: 这一题题目说明是一个“三位数”,则我们可以用枚举的方法,分别枚举百位、十位、个位。 但是要注意题目给出的规则“各位数字互不相同,十位数字比个位、百位数字之和还要大,且十位、百位数字之和不是质数”。
代码:
#include <bits/stdc++.h> using namespace std; bool ss(int n)//判断素数的函数 { if(n<2)return false; if(n==2)return true;//特判 for(int i=2; i<=sqrt(n); i++) if(n%i==0) return false; return true; } signed main() { int sum=0;//计数器 for(int i=1; i<=9; i++)//枚举百位,注意最高位不能为0 for(int j=0; j<=9; j++)//枚举十位 for(int k=0; k<=9; k++)//枚举个位 if(i!=j&&i!=k&&j!=k&&i+k<j&&!ss(i+j))//判断是否合法 { sum++;//个数加1 cout<<i<<j<<k<<' '; if(sum==8) cout<<endl,sum=0;//输出八个数字后,换行 } return 0; }
这道题是纯模拟,就是要细心,不要漏掉题目条件。
PS:可以打表。
- 1
信息
- ID
- 35
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 240
- 已通过
- 57
- 上传者