用java编程计算1^1+2^2+3^3+4^4+5^5+……+20^20,不用实型数,用数组进行计算

publicclassseventh{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-gene... public class seventh {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int[] intWork=new int[100];
nPowerN(4,intWork);

int x=0;

for(int i=intWork.length-1;i>=0;i--)
if(intWork[i]==0&&intWork[i-1]>0)
{
x=i-1;
break;
}

for(int i=x;i>=0;i--)
System.out.print(intWork[i]);

}

public static void nPowerN(int n,int[] aArray)
{
aArray[0]=n%10;
aArray[1]=n/10;

int[] midWork=new int[100];

for(int q=0;q<n-1;q++)
{
for(int i=0;i<aArray.length;i++)
{
midWork[i]=aArray[i]*n;
aArray[i]=midWork[i]%10;
}

for(int m=0;m<aArray.length;m++)
for(int k=m-1;k>=0;k--)
aArray[m]+=(midWork[k]/Math.pow(10,m-k));

for(int w=0;w<aArray.length;w++)
aArray[w]=aArray[w]%10;
}
}

}

看完大家应该知道我的意思了,谢谢各位帮忙~~
展开
 我来答
百度网友0583ac2ea
2011-04-01 · TA获得超过957个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:218万
展开全部
这个就是如同二楼所说的,考察的是大数的运算。如下。。
import java.math.BigDecimal;

public class TestPow {

public static void main(String[] args) {

BigDecimal sum = new BigDecimal(0);
int[] arr = new int[20];
for(int i = 1; i <= 20; i++) {
arr[i-1] = i;
}

for(int i = 0; i < 20; i++){
BigDecimal temp = new BigDecimal(arr[i]);

temp = temp.pow(arr[i]);
sum = sum.add(temp);
}

System.out.println(sum.toString());
}

}

3楼的仁兄,不够地道哦。。。你的数组都没初始化怎么编译呢?还有20的20次方为溢出的。。。那样计算结果肯定不对的。。。math.pow(); Math也大写啊。。。误导LZ呢。。。

测试结果:
1^1+2^2+3^3+4^4+5^5+……+20^20 = 106876212200059554303215024
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-02
展开全部
4就可以写成(1/2)*(1/12)这样吧,a=a*(1/i)就可以理解成这样子,第一个是1,第二个就是1*(1/2)结果就是0.5下来呢,就是0.5*(1/3)这个呢就等于是(1/2)*(1/3)也就等于是1/3的阶剩了呀,你说对不,一直循坏到结果,这样理解了吧. 在不理解可以问我,我在线.
另外,虚机团上产品团购,超级便宜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdu_viper
2011-04-02 · TA获得超过124个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:115万
展开全部
楼主是想计算异或还是乘方?
楼下的都用了java.math.BigInteger
如果这样的话这道题目就没有什么意思了
应该考的就是如何自己实现大数的加减乘除
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晶莹的幻象
2019-10-10
知道答主
回答量:1
采纳率:0%
帮助的人:691
展开全部
虽然很久了,但还是要发一下

贴主发的是n的n次方的和,不是平方

System.out.println(1 + 2 * 2 + 3 * 3 * 3 + 4 * 4 * 4 * 4 + 5 * 5 * 5 * 5 * 5 + 6 * 6 * 6 * 6 * 6 * 6);

是50069

自己可以验证一下

已发博文博文:https://blog.csdn.net/weimingjue/article/details/101760480
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cc486255
2011-04-01 · 知道合伙人软件行家
cc486255
知道合伙人软件行家
采纳数:697 获赞数:1968
3年.NET开发经验

向TA提问 私信TA
展开全部
int[] arr;
int sum=0;
for(int i=0;i<20;i++){
arr[i]=(i+1);
}

for(int j=0;j<arr.length;j++){
sum=sum+math.pow(arr[j],(j+1));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式