OK now 每日一题来了哦
今天题目是Online Judge(OJ)编号为1118的既生瑜,何生亮!
现在让我们一起来see see 题目
某数的平方是7位数,且这7个数字不相同,如1267^1267=1605289。
编写程序,输入x,y( 1000≤x≤y≤9999 )在x~y的范围内找出所有符合条件的数并打印出来。
输入
一行,两个整数。
输出
若干行,每行一个符合条件的数。
样例
输入 1000 1025
输出
1017
1023
1024
接下来让我一起see see思路吧
本题就是求平方函数,然后再从小到大输出来
这道题就易如反掌
代码来哦
随便先写一个判断七位数的函数
bool qi(int n){
if(n<1000000||n>9999999) return false;
else return true;
}
okk
判断各个位是否相同的函数走一个
bool xt(int n){
int a[20]={0};
while(n!=0){
a[n%10]++;
n=n/10;
}
for(int i=0;i<=9;i++){
if(a[i]>1) return false;
}
return true;
}
接下来我要把两个函数合并成一个函数
bool fun(int n){
if(n<1000000||n>9999999) return false;
int a[20]={0};
while(n!=0){
a[n%10]++;
n=n/10;
}
for(int i=0;i<=9;i++){
if(a[i]>1) return false;
}
return true;
}
欧克了,最后在写一下主函数的程序
int x,y;
int main(){
cin>>x>>y;
for(int i=x;i<=y;i++){
if(fun(i*i)) cout<<i<<endl; //i*i其实就是i的平方,而函数里的n是i的平方
}
return 0;
}
欧克全部代码走起
#include <bits/stdc++.h>
using namespace std;
bool fun(int n){
if(n<1000000||n>9999999) return false;
int a[20]={0};
while(n!=0){
a[n%10]++;
n=n/10;
}
for(int i=0;i<=9;i++){
if(a[i]>1) return false;
}
return true;
}
int main(){
int x,y;
cin>>x>>y;
for(int i=x;i<=y;i++){
if(fun(i*i)) cout<<i<<endl;
}
return 0;
}