| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1168 人关注过本帖
标题:java小白~筛选次方数~怎么结果错了~
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
收藏
已结贴  问题点数:20 回复次数:3 
java小白~筛选次方数~怎么结果错了~
提高题:除去次方数
自然数的平方数是:1  4  9  16  25  
自然数的立方数是:1  8  27  64  125  
自然数的4次方数是:1  16  81  256  

这些数字都可以称为次方数。
1~10000中,去掉所有的次方数,还剩下多少个数字?~

程序代码:
public static void main(String[] args) {
        int a[]=new int[10000];
       int t,i,k,s=1,j,m=0,sum,l;
{for(i=0;i<10000;i++)
    a[i]=i+1;}
    
for(t=2;t<=100;t++)
for(l=2;l<=13;l++)    
{for(k=1;k<=l;k++)
    s=s*t;
   if(s<=10000)
   {for(j=0;j<10000;j++)
   {if(a[j]==s){ m++;a[j]=0;}}}
        s=1;
}    
    
    sum=10000-m-1;
    System.out.println(sum);
    
    }

}



[此贴子已经被作者于2017-3-11 23:07编辑过]

搜索更多相关主题的帖子: 共产党人 自然数 java 
2017-03-11 10:22
梦月神游
Rank: 2
来 自:灵界-异空间
等 级:论坛游民
威 望:4
帖 子:23
专家分:98
注 册:2017-3-11
收藏
得分:20 
回复题主, m++;a[j]=0;
你那个方法存在int 型数据溢出问题,8^11 int的计算结果为0。
(int )8^12=0*0=0;
(int )8^13=0*0=0;

(int )16^8=0;
当然把m++;a[j]=0;换成1可以得出正确结果,但这种方法不值得提倡,只是说明问题所在。

所以倒不如换一种方法,循环主体四行代码就可以了。

答案是9875。

程序代码:
public class Lab2_2_4 {
    public static void main(String[] args){
        int sum[]=new int [10001];/*初始化已经赋值为0*/
        
        int i=0;
        int j=1;
        int a=0;
        
        for (i=2;i!=101;++i)
            for (a=i*i;a<10001;a*=i)
                if (sum[a]!=1)
                   j+=sum[a]=1;
        
        
        System.out.println(10000-j);
    }
}
2017-03-11 11:12
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 2楼 梦月神游
结~~~~~~~~~~~~~~~~~~~~~~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-11 11:20
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
问题已经解决~~~~~~~JAVA人气少~~回复的比C要少~~~~先结贴为妙~~~~~~~~~~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-11 11:20
快速回复:java小白~筛选次方数~怎么结果错了~
数据加载中...
 
   



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

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