把123456789组合成三个三个三位数,要求每个数字仅用一次,并且每个三位数均是完全平方数的c语
答案:2 悬赏:0 手机版
解决时间 2021-02-04 19:56
- 提问者网友:人傍凄凉立暮秋
- 2021-02-04 16:22
把123456789组合成三个三个三位数,要求每个数字仅用一次,并且每个三位数均是完全平方数的c语言程序
最佳答案
- 五星知识达人网友:duile
- 2021-02-04 17:03
#include"stdio.h"
int square(){
int num=0;
for(int i=100;i<1000;i++)
for(int j=10;j<32;j++)
if(i==j*j)
num++;
return num;
}
void arr_num(int i,int*&arr,int num){
for(int j=i;j *(arr+j)=num%10;
num/=10;
}
}
int check(int a,int b,int c,int*arr){
int bo=1;
arr_num(0,arr,a);
arr_num(3,arr,b);
arr_num(6,arr,c);
for(int i=0;i<9;i++)
for(int j=i+1;j<9;j++)
if(*(arr+i)==*(arr+j))
bo=0;
return bo;
}
int main(){
int arr[9];
int square_num=square();
int num=0;
int *a=new int[square_num];
for(int i=100;i<1000;i++)
for(int j=10;j<32;j++)
if(i==j*j)
a[num++]=i;
for(int i=0;i
for(int j=i+1;j
for(int k=j+1;k
if(check(a[i],a[j],a[k],arr))
printf("%d,%d,%d\n",a[i],a[j],a[k]);
}
return 0;
}
int square(){
int num=0;
for(int i=100;i<1000;i++)
for(int j=10;j<32;j++)
if(i==j*j)
num++;
return num;
}
void arr_num(int i,int*&arr,int num){
for(int j=i;j *(arr+j)=num%10;
num/=10;
}
}
int check(int a,int b,int c,int*arr){
int bo=1;
arr_num(0,arr,a);
arr_num(3,arr,b);
arr_num(6,arr,c);
for(int i=0;i<9;i++)
for(int j=i+1;j<9;j++)
if(*(arr+i)==*(arr+j))
bo=0;
return bo;
}
int main(){
int arr[9];
int square_num=square();
int num=0;
int *a=new int[square_num];
for(int i=100;i<1000;i++)
for(int j=10;j<32;j++)
if(i==j*j)
a[num++]=i;
for(int i=0;i
printf("%d,%d,%d\n",a[i],a[j],a[k]);
}
return 0;
}
全部回答
- 1楼网友:污到你湿
- 2021-02-04 17:36
#include
int main(void)
{
int i, j, k, n, m;
for (i = 1; i <= 9; ++i)
{
for (j = 1; j <= 9; ++j)
{
if (i == j)
{
continue;
}
for (k = 1; k <= 9; ++k)
{
if (i == k || j == k)
{
continue;
}
n = i * 100 + j * 10 + k;
m = 1;
while (m * m <= n)
{
if (m * m == n)
{
printf("%d\n", n);
}
m++;
}
}
}
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯