| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1374 人关注过本帖, 1 人收藏
标题:满足条件的数的连续性问题的计算
只看楼主 加入收藏
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
结帖率:93.33%
收藏(1)
 问题点数:0 回复次数:1 
满足条件的数的连续性问题的计算
将1到100的这100个数,每个数都分解为两个整数的平方之和,如果满足该条件,就将满足该条件的数打印出来。同时计算如果有两个数相邻(比如17和18,25和26,40和41等等)它们都可以分解为两个整数的平方之和,就说它们相邻(程序里用a来表示有多少个这样的数相邻),程序代码编写如下:
程序代码:
#include "stdio.h"
main()
{
int x,y,i,a=0;
printf("将一个数分成两个数的平方之和的连续性:");
printf("\n");
for(i=1;i<=100;i++)
   {
     for(x=1;x<=50;x++)
     {
       for(y=x;y<=50;y++)
       {
           if(i!=x*x+y*y)  a=0;    
               else
               {
                   printf("%d=%d^2+%d^2",i,x,y);
                 a=a+1;    
                 printf("    a=%d\n",a);
               } 
      }
    }
  }
  
}

为啥程序运行后a值都是1,它没有根据具体情况而给出相应的值呢?
希望达到如下效果:
将一个数分成两个数的平方之和的连续性:
2=1^2+1^2  a=1
5=1^2+2^2  a=1
8=2^2+2^2  a=1
10=1^2+3^2  a=1
13=2^2+3^2  a=1
17=1^2+4^2  a=1
18=3^2+3^2  a=2
20=2^2+4^2  a=1
25=3^2+4^2  a=1
26=1^2+5^2  a=2
29=2^2+5^2  a=1
32=4^2+4^2  a=1
34=3^2+5^2  a=1
37=1^2+6^2  a=1
40=2^2+6^2  a=1
41=4^2+5^2  a=2
45=3^2+6^2  a=1
50=1^2+7^2  a=1
50=5^2+5^2  a=1
52=4^2+6^2  a=1
53=2^2+7^2  a=2
58=3^2+7^2  a=1
61=5^2+6^2  a=1
65=1^2+8^2  a=1
65=4^2+7^2  a=1
68=2^2+8^2  a=1
72=6^2+6^2  a=1
73=3^2+8^2  a=2
74=5^2+7^2  a=3
80=4^2+8^2  a=1
85=2^2+9^2  a=1
85=6^2+7^2  a=1
89=5^2+8^2  a=1
90=3^2+9^2  a=2
97=4^2+9^2  a=1
98=7^2+7^2  a=2
100=6^2+8^2  a=1


这里17和18是相邻的数,所以 18=3^2+3^2  a=2
后面还有25和26,40和41,道理相同。
如果有三个数相邻,那么a=3.

[此贴子已经被作者于2019-8-21 13:27编辑过]

搜索更多相关主题的帖子: 条件 连续性 之和 相邻 printf 
2019-08-20 23:18
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
这样比较接近啦!!
程序代码:
#include "stdio.h"
main()
{
int x,y,i,a=0;
printf("将一个数分成两个数的平方之和的连续性:");
printf("\n");
for(i=1;i<=100;i++)
   {
     for(x=1;x<=10;x++)
     {
       for(y=x;y<=10;y++)
       {
           if(i==x*x+y*y)   
               {
                     a=a+1;
                  printf("%d=%d^2+%d^2",i,x,y);
                  printf("    a=%d\n",a);
                  for(x=1;x<=10;x++)
                    {
                     for(y=x;y<=10;y++)
                         {
                           if((i+1)==x*x+y*y)   
                          {
                              a=a+1;
                              printf("%d=%d^2+%d^2",i+1,x,y);
                            printf("    a=%d\n",a);
                          }  
                           }
                    }
               } 
              a=0;
      }
    }
     
  }
  
}

但是还不理想。
2019-08-22 17:38
快速回复:满足条件的数的连续性问题的计算
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.220967 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved