Java程式練習-計算2的N次方
時間限制: 1000ms記憶體限制: 65536kB
描述
任意給定一個正整數N(N<=100),計算2的N次方的值。
輸入
輸入只有一個正整數N。
輸出
輸出2的N次方的值。
樣例輸入
5
樣例輸出
32
參考程式碼
import java.util.*; public class Main { public final static int SIZE = 30; public static void main(String[] args) throws Exception { Scanner cin = new Scanner(System.in); int n = cin.nextInt(); int res[] = new int[SIZE + 1]; int i; for(i = 0;i < SIZE;++ i){ res[i] = 0; } res[0] = 1; while(n > 0){ for(i = 0;i < SIZE;++ i){ res[i] *= 2; } for(i = 0;i < SIZE;++ i){ if(res[i] > 9){ res[i + 1] += res[i] / 10; res[i] %= 10; } } n --; } boolean bl = false; StringBuffer bf = new StringBuffer(); for(i = SIZE;i >= 0;-- i){ if(res[i] != 0 || bl){ bf.append(res[i]); bl = true; } } System.out.println(bf); } }
根據高位低位改進的程式碼:
/* * Title :power 2 * From :http://blog.csdn.net/binfeihan/article/details/6858655 * Time :2011-10-11 21:10PM * Author :Eric Zhou,binfeihan * Email :[email protected] */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(cin.readLine().trim()); System.out.println(my_power_2(n)); //System.out.println(Long.MAX_VALUE); //System.out.println(Long.MIN_VALUE); } public static StringBuffer my_power_2(int N){ StringBuffer v = new StringBuffer(""); long num[] = new long[2]; num[1] = 1; if(N > 62){ num[0] = 1; num[0] = num[0]<<(N - 62); num[1] = num[1]<<62; String s = String.valueOf(num[1]); int size = 30,i = 0,j = 0; long n[] = new long[size + 1]; //System.out.println(num[0]+" "+s); for(i = s.length() - 1;i >= 0;-- i){ n[j ++] = (long) (num[0] * (s.charAt(i) - '0')); //System.out.println(n[j - 1]); } for(i = 0;i < size;++ i){ while(n[i] > 9){ n[i + 1] += n[i] / 10; n[i] %= 10; } } boolean bl = false; for(i = size;i >= 0;-- i){ if(n[i] != 0 || bl){ v.append(n[i]); bl = true; } } }else{ num[1] = num[1] << N; v.append(String.valueOf(num[1])); } return v; } }
相關推薦
Java程式練習-計算2的N次方
計算2的N次方時間限制: 1000ms記憶體限制: 65536kB描述任意給定一個正整數N(N<=100),計算2的N次方的值。輸入輸入只有一個正整數N。輸出輸出2的N次方的值。樣例輸入5樣例輸出32參考程式碼import java.util.*; public c
按要求編寫Java程式---圓柱體計算
1. 題目描述 (1)定義介面A,裡面包含值為3.14的常量PI和抽象方法double area()。 (2)定義介面B,裡面包含抽象方法void setColor(String c)。 (3)定義介面C,該介面繼承了介面A和B,裡面包含抽象方法void volume()。 (4)定義圓
mysql設定表列的時候把時間設定成String型別,java 程式後面涉及到當前時間和資料庫裡資料的差值計算,怎麼破?
mysql設定表列的時候把時間設定成String型別,java 程式後面涉及到當前時間和資料庫裡資料的差值計算,怎麼破? 如果改資料庫裡面表的列屬性varchar改成time,需要很多地方改進,而且專案已經試運行了,怕出問題? 在java程式中型別轉化很多,String型別可以轉化為date
《Java》Java實現一個“計算文字中某個詞出現頻率”的應用程式
一、目的 計算某個詞出現頻率,可以很好的對一篇文章水平的評價提供客觀依據,比如在技術類文章中出現“的”字的頻率太高,說明此文章邏輯不夠嚴謹,本次應用程式的目的就是計算出指定文字中指定詞出現的頻率。 二、程式演示 有如下一個文字檔案w.txt,我們計算“的”字出
java程式中執行緒cpu使用率計算
原文地址:https://www.imooc.com/article/27374 最近確實遇到題目上的剛需,也是花了一段時間來思考這個問題。 cpu使用率如何計算 計算使用率在上學那會就經常算,不過往往計算的是整個程式執行的時間段,現
Android Studio 練習java程式專用
轉載:https://blog.csdn.net/xiaxiayige/article/details/46706949 有時候需要寫點小測試程式,測試方法是否可靠,有效。需要寫個java測試程式測試,Android Studio 上執行java 程式不像Eclipse那樣方便 但是
java程式計算兩個大整數相乘
方法1 :用兩個字串儲存輸入的大整數,然後用第二個字串的每一位去乘第一個字串的數字值,最後將每次的結果錯位相加即可。時間複雜度高O(n^2) 方法2:將兩個大整數X,Y每次分割成兩半,第一個分割成AB,第二個分割成CD。所以最後結果XY=(A*10^n/2 +B)(C*10^m/2+D);進
如何優化Java程式:十進位制轉十六進位制(2的31次方以內的正整數)
程式碼如下: package com.java; import java.util.Scanner; public class TestTransform { public static void main(String[] args) { Scanner
通過Java程式計算個人所得稅
工資個稅的計算公式為: 應納稅額=(工資薪金所得 -“五險一金”-扣除數)×適用稅率-速算扣除數 扣除標準:個稅按3500元/月的起徵標準算 程式碼例項
JAVA版CORBA程式練習
要求: 1)要求編寫實現顯示“Hello,World!+班級+中文姓名”字串 2)編寫實現連加、連減和加減混合等數學++/- -運算,並進行測試。 一、JAVA版CORBA程式1——HelloWorld 實現詳解: 1 編寫IDL介面HelloWorld.idl:
【java程式】圖形面積和周長計算
package test1; import java.util.Scanner; class circle{ double r,a,b,h; public double zfx(double a) {
編寫一個Java 應用程式,計算兩個大整數的和、差、積和商,並計算一個大整數的因 子個數(因子中不包括1 和大整數本身)。
1 package ex6_2; 2 import java.math.BigInteger; 3 4 public class BigintegerExample { 5 public static void main(String[] args) { 6
java程式之出差補助計算
某公司為其它公司做技術服務,人員按照客戶要求出差外派。補貼是在人員出差前預先派發的。需要計算出每個人的補貼數值,並且需要派出日期先後排序,以便於安排進行統一借款並進行補貼的派發。如果派出日期相同,則按照補貼金額從少到多排序。 按照出差時間長短,補貼的標準是
JAVA 第一個小專案 桌球遊戲 (桌球小程式練習)
今天裝了Eclipse 學習第一個小程式‘’ #載入視窗 #畫視窗 import java.awt.*;import javax.swing.*; public class BallGame extends JFrame{ Image ball = Toolkit.ge
JAVA 第一個小專案 桌球遊戲 (桌球小程式練習2)最終版本
import java.awt.*;import javax.swing.*; public class BallGame2 extends JFrame{ Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png"); Ima
Java集合框架練習-計算表示式的值
最近在看《演算法》這本書,正好看到一個計算表示式的問題,於是就打算寫一下,也正好熟悉一下Java集合框架的使用,大致測試了一下,沒啥問題。 import java.util.*; /* * * 用來計算表示式 * for example: 1+2*3*(4+3*1)
Java 小程式練習(二)
一、四位隨機驗證碼 package lx2; import java.util.Random; public class Demo5 { public static void main(String[] args) { char[] arr={'s','b','
Java開發練習1,打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153 是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153 是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。 public class
JAVA程式計算圓的周長面積
import java.util.Scanner;//匯入輸入庫檔案包 public class Circle { public static void main(String[] args) { final float pi=3
Java小程式之計算三角形/圓形/矩形的周長和麵積
題目:用Java編寫一個計算隨意給定值的三角形/圓形/矩形的周長和麵積 程式碼如下: 檔名:Shape.java /** * 抽象類Shape 是其他三個形狀的父類 * 其他三個類要繼承重寫getArea()和getPerimeter()方法