java-大一新生妹子求救:求2的100万次方

问题描述

大一新生妹子求救:求2的100万次方

求2的100万次方的值,不能使用java中的系统函数,这两天急用,关乎到进项目组锻炼的机会,谢谢大家了。

解决方案

试下这个吧,。要跑很久

 import java.util.ArrayList;

public class Test {
    public static ArrayList<Integer> doubleIt(ArrayList<Integer> a){
        int addto=0;
        for(int i=0;i<a.size();i++){
            int left=(a.get(i)*2+addto)%10;
            addto=(a.get(i)*2+addto)/10;
            a.set(i, left);
            if(i==a.size()-1&&addto!=0){
                a.add(addto);
                break;
            }

        }
        return a;
    }
public static void main(String[] args){
    ArrayList<Integer> a=new ArrayList<Integer>();
    a.add(8);
    doubleIt(a);
    for(int i=1;i<999997;i++){
        a=doubleIt(a);
    }
    for(int i=a.size()-1;i>=0;i--){
        System.out.print(a.get(i));
    }
}
}

解决方案二:

运用递归,递归方程式:
a^n=a^(n/2)*a^(n/2) 当n为偶数
=a^(n/2)*a^(n/2)*a 当n为奇数
如果不明白,明天我可以把代码发给你!

解决方案三:

要等很久

 import java.util.ArrayList;

public class Test {
    public static ArrayList<Integer> doubleIt(ArrayList<Integer> a){
        for(int i=a.size()-1;i>=0;i--){
            int addto=a.get(i)*2/10;
            int left=a.get(i)*2%10;
            a.set(i, left);
            if(addto==0){
                continue;
            }
            if(i==a.size()-1){
                a.add(addto);

            }else{
                a.set(i+1, a.get(i+1)+addto);

            }

        }
        return a;
    }
public static void main(String[] args){
    ArrayList<Integer> a=new ArrayList<Integer>();
    a.add(2);
    doubleIt(a);
    for(int i=1;i<99999;i++){
        a=doubleIt(a);
    }
    for(int i=a.size()-1;i>=0;i--){
        System.out.print(a.get(i));
    }
}
}

解决方案四:

这个问题最大的难点是输出的数据类型不能是int,float,long,double等基本类型

解决方案五:

用bigint类型来存储数据

解决方案六:

http://zhidao.baidu.com/link?url=HuMAt1BMmeHnYpZ0gf8cy3GMmDppUiJgo5HyN2nSIbcz2DPLlPJX0YBzPF5mEjRJ2Vc2QhYx3zdbxHgO54Q1cK这个地方有现成的。

解决方案七:

package face.test;

import java.util.Scanner;

public class BigNumber {
public static void main(String[] args) throws Exception {
int[] date = new int[10000];
date[1] = 1;
int weishu = 1; // 求出来的值的位数

    System.out.println("求2的n次方的值");
    System.out.print("n=");

    Scanner cin = new Scanner(System.in);
    int n = cin.nextInt();

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= weishu; j++) {
            date[j] = date[j] * 2;
        }

        // 确保除最高位外的每位不大于9
        for (int j = 1; j < weishu; j++) {
            if (date[j] >= 10) {
                date[j + 1] += date[j] / 10;
                date[j] = date[j] % 10;
            }
        }

        // 确保最高位不大于9
        while (date[weishu] >= 10) {
            weishu++;
            date[weishu] += date[weishu - 1] / 10;
            date[weishu - 1] = date[weishu - 1] % 10;
        }
    }

    System.out.print("2的" + n + "次方= ");
    for (int k = weishu; k >= 1; k--) {
        System.out.print(date[k]);
    }
    System.out.println("");
}

}

求2的n次方的值
n=100
2的100次方= 1267650600228229401496703205376

解决方案八:

用一个大数据处理库就能算出来,然后直接以常量形式写到项目中就行了

解决方案九:

如果是C++的话,应该是个大数问题,我一般面对这种问题要用数组,不过一般要算很久的...

——我是可爱的小尾巴 [url=http://blog.tk-xiong.com/]http://blog.tk-xiong.com/[/url]

解决方案十:

这个问题 主要从2 上入手 2进制嘛 1后边100万个0 然后转16进制 8进制 都很方便的

时间: 2025-01-19 15:48:49

java-大一新生妹子求救:求2的100万次方的相关文章

大学生编程疑问-大一新生的程序设计大作业,火车每条线路的链表在什么时建立?求人教已绝望

问题描述 大一新生的程序设计大作业,火车每条线路的链表在什么时建立?求人教已绝望 这个题要求必须把每条线路都存在链表中,是要建一一个五个元素的结构体数组链表吗,最关键的是我知道火车的信息存在文件中,是要写一个函数建立链表并打开文件把链表存进去吗?那打开的时候怎么办,编译环境会自动识别链表吗,这好像是个语文的题求各位大神指点迷津 解决方案 http://download.csdn.net/detail/iexplore/2008905http://www.doc88.com/p-180681503

求教答案-我是大一新生,求前辈们指教~~

问题描述 我是大一新生,求前辈们指教-- #include #define ai int main(void) { scanf("%s",&"ai"); printf("%s","ai"); } 想把输入的内容赋予ai并输出,但输出的都是ai,最后一句用单引号代替双引号就是segmentation fault 想知道为什么,怎么改能调试成功? 解决方案 首先ai应该做为一个变量定义 char ai[10] 然后做为输入

对计算机专业大一新生的忠告

如果我有弟弟,我就可以给他当专业指导,也可以当心理辅助. 我体验到的本科教育就是学得广而不精的,要精只能考自己.你学谭好强c语言的同时,就应该把c语言之父那本薄薄的唯一遗作吃透1:你学了数据结构,就应该能不用看书就把整本殷人昆那本书2中代码打出来:你学了面向对象语言,就应该熟透设计模式3:你学了操作系统,就至少能把最低版本的linux源码4理解清楚,把哈工大5在实验楼的操作系统实验6搞定,并啃完卡梅隆那本教材7:你学了网络编程,就应该把UNIX 高级环境编程8和网络编程9自学完.算法不在多,而在

关于java重写paint方法,求大神帮忙

问题描述 关于java重写paint方法,求大神帮忙 我能理解第一段模版函数,然后通过继承和重写方法,代入,为什么第二段代码,不需要带入父类方法,自己就跑起来了了,好像只要把paint重写了,系统自动跑, 还有中间通过屏幕监听的控制关闭的代码看不懂,为什么要这样写,老师说是匿名内部类,求大神讲解 解决方案 4444LJKHJHJHK'HJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJ 解决方案二: 问题1:重新pa

基础-JAVA课程设计实数计算器求指导思路

问题描述 JAVA课程设计实数计算器求指导思路 [问题描述]运用面向对象程序设计知识,利用Java语言设计和实现一个复数计算器.要求具备如下主要功能: (1)建立实数类.复数类 (2)实现实数.复数信息的初始化 (3)实现实数的加.减.乘.除.自增.自减.求平方.二次方根等操作 (4)实现复数的加.减.乘.除.取模.求平方.求共轭复数.求单个复数的向量角.求两个复数的夹角等运算 (5)实现实数.复数信息的输出 在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出Java语言关于类.继承

java 面试题大全,求大神们帮助一下~~~~

问题描述 java 面试题大全,求大神们帮助一下~~~~ java 面试题大全,求大神们帮助一下~~~~java 面试题大全,求大神们帮助一下~~~~java 面试题大全,求大神们帮助一下~~~~java 面试题大全,求大神们帮助一下~~~~java 面试题大全,求大神们帮助一下~~~~java 面试题大全,求大神们帮助一下~~~~ 解决方案 求啥,百度上有的是,还带答案 解决方案二: http://pan.baidu.com/s/1kTxbjt9 百度文库 解决方案三: 同意楼上的,去百度上搜

java我写的这个求水仙花数为什么算不出来

问题描述 java我写的这个求水仙花数为什么算不出来 import java.util.Scanner; public class Task1{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入一个数"); int number = input.nextInt(); double s=0; int[] a={0}; int i; f

Myeclipse导入java项目出现问题,求指教!

问题描述 Myeclipse导入java项目出现问题,求指教! 昨天导入同时的web项目,框架是SSI,由于数据库改用我自己的,所以在Spring配置文件中将数据源中的数据库名和密码改成了自己的,结果出现错误,说用户名密码错误. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying databa

c语言基础-真的很着急,大一学生党,求大神指导写一个c语言拨号程序

问题描述 真的很着急,大一学生党,求大神指导写一个c语言拨号程序 能显示出通讯录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声 解决方案 http://zhidao.baidu.com/link?url=svF4fjRTNuBmCJyCiRipzB_21UO5zvNc0hCye7qj8nxOY1lC78667ycDqYnJ7xHiGT00M4NuYqGIak2R5cEU961mjRl1ADLf-Eh1nDKpiBi