C语言 判断一个正整数能否写成另外两个正整数的平方和,大神帮忙! 5

形式就为N=a^2+b^2;如果存在输出yes否则输出no!此数可能会大到1000000000009!请大神在写完代码后,再讲讲思路,不胜感激... 形式就为N=a^2+b^2;如果存在输出yes否则输出no!此数可能会大到 1000000000009!请大神在写完代码后,再讲讲思路,不胜感激 展开
 我来答
暮影1994
2013-06-30 · TA获得超过2338个赞
知道大有可为答主
回答量:1215
采纳率:60%
帮助的人:399万
展开全部
#include<stdio.h>
void main()
{ int text(double N,double x,double y);//判断是否符合N=a*a+b*b,要是符合,返回1;
  int i=0; 
  double N ,a,b;   
  printf("\nInput N is: ");  scanf("%ld",&N);
  printf("\nInput a is: ");     scnaf("%ld",&a);
  printf("\nInput b is: ");     scanf("%ld",&b);
  i=text(N ,a,b);//调用函数
  if(i==1)  printf("Yes!");
  else      printf("NO!");
}
int text(double N ,double a,double b)
{ if(N==a*a+b*b)      return 1;//如果符合返回1;
   else                return 0;
} //如果对您有用,望采纳
更多追问追答
追问
不是这样的意思,不是输入a,b,n;就是给你一个数,看能不能表示成N=a^2+b^2这种形式,让你自己去找a和b;详见 http://acm.neu.edu.cn/hustoj/problem.php?id=1254
追答
#include<stdio.h>
void main()
{ double N ;   
  double a,b;
  int text(double N ,double i,double j);
  printf("Input N is:");  scnaf("%ld",&N);
  for(i=0;i<N;i++)
  { for(j=0;j<N;j++) 
     if(text(N ,i,j)==1)   printf("Yes: a is:%ld,b is:%ld",a,b);
   }
}
int text(double N ,double i,double j)
{ if(N==i*i+j*j)    return 1;
  else              return 0;
}
隽霞悟婷
2020-04-12 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:24%
帮助的人:960万
展开全部
怎么合并呢?
连接: 如65,23,合并为6523还是2365,还是6253,还是2635呢?
/*
请输入两个两位正整数(任意一个为0则结束):
45
12
45和12的组合结果为
:
1524
请输入两个两位正整数(任意一个为0则结束):
36
20
36和20的组合结果为
:
2603
请输入两个两位正整数(任意一个为0则结束):
0
0
press
any
key
to
continue
*/
#include
int
main()
{
int
a,b,n;
while(1)
{
printf("请输入两个两位正整数(任意一个为0则结束):
");
scanf("%d%d",&a,&b);
if(a
==
0
||
b
==
0)
break;
n
=
1000
*
(b
/
10);
//
取b的十位放到千位上
n
+=
100
*
(a
%
10);
//
取a的个位放到百位上
n
+=
10
*
(b
%
10);
//
取b的个位放到十位上
n
+=
a/10;
//
取a的十位放到个位上
printf("%d和%d的组合结果为
:
%d\n",a,b,n);
}
return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu0904
2013-06-30 · TA获得超过222个赞
知道小有建树答主
回答量:510
采纳率:0%
帮助的人:461万
展开全部
#include <math.h>
bool fun(unsigned long long r){
unsigned a=sqrit(r),b=1,c,d;
while(a>0){
c=r-a*a;
d=sqrt(c);
if(d*d==c){
//cout<< r<<'='<<a<<'*'<<a<<'+'<<d<<'*'<<d<<endl
return ture;
}
--a;
}
return false;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式