给出了整数X和K。任务是找到可被X整除的最高K位数。
null
例如:
Input : X = 30, K = 3 Output : 990 990 is the largest three digit number divisible by 30. Input : X = 7, K = 2 Output : 98
一 有效解决方案 就是用下面的公式。
ans = MAX - (MAX % X) where MAX is the largest K digit number which is 999...K-times
这个公式适用于简单的学校教学法。我们去掉余数得到最大的可除数。
// Java code to find highest // K-digit number divisible by X import java.io.*; import java.lang.*; class GFG { public static double answer( double X, double K) { double i = 10 ; // Computing MAX double MAX = Math.pow(i, K) - 1 ; // returning ans return (MAX - (MAX % X)); } public static void main(String[] args) { // Number whose divisible is to be found double X = 30 ; // Max K-digit divisible is to be found double K = 3 ; System.out.println(( int )answer(X, K)); } } // Code contributes by Mohit Gupta_OMG <(0_o)> |
输出:
990
理解数学。函数,请参考本文第18点: https://www.geeksforgeeks.org/java-lang-math-class-java-set-2/
请参阅完整的文章 可被X整除的最大K位数 更多细节!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END