学校作业求助!!!
求助求助!! #include <stdio.h>#include <stdbool.h>
#include <math.h>
bool solve(int num){
int n = sqrt(num);
return n*n == num;
}
int main(void){
int num1, num2;
scanf("%d %d",&num1,&num2);
if(solve(num1-num2))
printf("Yes");
else printf("No");
return 0;
} 本帖最后由 jackz007 于 2020-11-15 21:19 编辑
不用数学库
#include <stdio.h>
main(void)
{
int d , e , f = 0 , i , j , m , n ;
scanf("%d%d" , & d , & e) ;
if(d > 0 && e > 0) {
m = d + e ;
n = (d > e) ? d - e : e - d ;
for(i = 1 ; i * i < n + 1 && ! f ; i ++) {
if(i * i == n) {
for(j = i ; j * j < m + 1 && ! f ; j ++) {
if(j * j == m) {
f ++;
break ;
}
}
}
}
}
if(f) printf("Yes.\n") ;
else printf("No.\n") ;
}
使用数学库
#include <stdio.h>
#include <math.h>
main(void)
{
int d , e , f = 0 , i , j , m , n ;
scanf("%d%d" , & d , & e) ;
if(d > 0 && e > 0) {
m = d + e ;
n = (d > e) ? d - e : e - d ;
i = sqrt(m) ;
j = sqrt(n) ;
if(i * i == m && j * j == n ) f ++ ;
}
if(f) printf("Yes.\n") ;
else printf("No.\n") ;
} 本帖最后由 风过无痕1989 于 2020-11-15 21:33 编辑
#include<stdio.h>
int main()
{
int i, j, m, n, sum, dif, flag1, flag2;
scanf("%d%d", &m, &n);
sum = m + n;
dif = m - n;
if(dif < 0)
dif = -dif;
for (i = 1;i < sum / 2;i++)
{
if (sum == i * i)
{
flag1 = 1;
break;
}
}
for (j = 1;j < dif / 2;j++)
{
if (dif == j * j)
{
flag2 = 1;
break;
}
}
if (flag1 == 1 && flag2 == 1)
{
printf("Yes");
}
else
{
printf("No");
}
printf("\n");
} 谢谢大家 a,b=map(int,input().split())
z = a+b
s = a-b
sum1=0
if s<0:
s=-s
for i in range(z+1):
if i*i == z:
for x in range(z+1):
if x*x == s:
sum1=1
break
if sum1 == 1:
print('Yes')
else :
print('No')
你也是橙旭园的??
页:
[1]