基礎演算法題——整除光棍(Java大數)
整除光棍
這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入一個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:第一個數字s,表示x乘以s是一個光棍,第二個數字n是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。
提示:一個顯然的辦法是逐漸增加光棍的位數,直到可以整除x為止。但難點在於,s可能是個非常大的數 —— 比如,程式輸入31,那麼就輸出3584229390681和15,因為31乘以3584229390681的結果是111111111111111,一共15個1。
輸入格式:
輸入在一行中給出一個不以5結尾的正奇數x(<1000)。
輸出格式:
在一行中輸出相應的最小的s和n,其間以1個空格分隔。
輸入樣例:
31
輸出樣例:
3584229390681 15
第一次用Java解題,愛了愛了~
解題步驟
①、引入包
import java.util.Scanner; //輸入
import java.math.BigInteger; //大整數
②、呼叫函式
BigInteger.ZERO = 0; //包中定義
BigInteger.TWO = 2;
BigInteger.TEN = 10;
a = cin.nextBigInteger(); //輸入
b = new BigInteger("1"); //賦值
c = b.mod(a); //取模:c=b%a
c.equals(BigInteger.ZERO); //c==0?true:false
b = b.multiply(BigInteger.TEN); //乘法:b = b*10
b = b.add(BigInteger.ONE); //加法:b = b+1;
b.divide(a); //除法:b = b/a;
b.toString().length() //b的長度
③、設計程式
import java.util.Scanner;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigInteger a, b, c, zero;
a = cin.nextBigInteger();
b = new BigInteger("1");
c = b.mod(a);
while(!c.equals(BigInteger.ZERO)) {
b = b.multiply(BigInteger.TEN);
b = b.add(BigInteger.ONE);
c = b.mod(a);
}
System.out.println(b.divide(a)+" "+b.toString().length());
}
}
相關文章
- 資訊保安數學基礎 第一篇-數論基礎-第一章 整除
- Java基礎題Java
- java基礎題(部分)Java
- java基礎面試題Java面試題
- 數論筆記-整除筆記
- [java基礎]之變數Java變數
- Java基礎-基礎語法-變數與常量Java變數
- JAVA 基礎練習題Java
- java基礎筆試題Java筆試
- java面試題--基礎上Java面試題
- Java基礎面試題下Java面試題
- 大資料之JAVA基礎(一):資料和變數大資料Java變數
- java基礎變數的交換Java變數
- RSA演算法以及數學基礎演算法
- 【Java基礎】--演算法與陣列Java演算法陣列
- Java面試題-基礎篇四Java面試題
- Java面試題-基礎篇五Java面試題
- Java面試題-基礎篇一Java面試題
- Java面試題-基礎篇二Java面試題
- JavaSE-Java基礎面試題Java面試題
- 01.Java基礎問題Java
- java基礎簡答題_2Java
- 面試題之:java基礎1面試題Java
- Java基礎知識面試題Java面試題
- Java面試題基礎篇(一)Java面試題
- Java面試題基礎篇(二)Java面試題
- Java面試題基礎篇(三)Java面試題
- java基礎題目總結Java
- 演算法基礎 --- 十大排序演算法排序
- Java 基礎 之 算數運算子Java
- JAVA基礎04——變數與常量Java變數
- java基礎-取餘數,取商Java
- JAVA基礎之-引數傳遞Java
- 夯實Java基礎系列1:Java物件導向三大特性(基礎篇)Java物件
- 基礎演算法題——異或和之和(位運算、組合數)演算法
- Java面試題總結之Java基礎(三)Java面試題
- java基礎(三)—–java的三大特性之多型Java多型
- Java基礎面試題整理-50題(附答案)Java面試題