用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;
}
}
}
看完大家应该知道我的意思了,谢谢各位帮忙~~ 展开
/**
* @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;
}
}
}
看完大家应该知道我的意思了,谢谢各位帮忙~~ 展开
6个回答
展开全部
这个就是如同二楼所说的,考察的是大数的运算。如下。。
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
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的阶剩了呀,你说对不,一直循坏到结果,这样理解了吧. 在不理解可以问我,我在线.
另外,虚机团上产品团购,超级便宜
另外,虚机团上产品团购,超级便宜
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主是想计算异或还是乘方?
楼下的都用了java.math.BigInteger
如果这样的话这道题目就没有什么意思了
应该考的就是如何自己实现大数的加减乘除
楼下的都用了java.math.BigInteger
如果这样的话这道题目就没有什么意思了
应该考的就是如何自己实现大数的加减乘除
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然很久了,但还是要发一下
贴主发的是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
贴主发的是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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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));
}
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));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询