मैं 103993/33102
पर दशमलव विस्तार की गणना करने के लिए एक प्रोग्राम लिख रहा हूं और मैं उपयोगकर्ता के इनपुट की संख्या के आधार पर सभी पिछली दशमलवों को प्रिंट करना चाहता हूं। यह 10^5
तक सभी संख्याओं के लिए तेज़ी से चलता है लेकिन यदि इनपुट में 10^6
इनपुट को उत्तर देने के लिए लगभग 5 मिनट लगते हैं। मैं चीजों को कैसे गति दे सकता हूं? मैंने BigDecimal
का उपयोग करके दो अलग-अलग दृष्टिकोणों की कोशिश की है और दूसरा स्ट्रिंग का उपयोग कर रहा है और न ही कोई कुशलतापूर्वक काम कर रहा है।बड़े इनपुट के लिए दशमलव गति कार्यक्रम बहुत धीमी गति से चल रहा है
public static void main(String[] args) throws NumberFormatException,
IOException {
// BigDecimal num1 = new BigDecimal(103993);
// BigDecimal num2 = new BigDecimal(33102);
String repNum = "415926530119026040722614947737296840070086399613316";
// pw.println(num.toString());
String sNum = "3.1";
// pw.println(repNum.length());
int cases = Integer.parseInt(br.readLine());
int dec;
for (int i = 0; i < cases; i++) {
sNum = "3.1";
dec = Integer.parseInt(br.readLine());
if (dec == 0)
pw.println("3");
else if (dec <= 52) {
sNum += repNum.substring(0, dec - 1);
pw.println(sNum);
} else {
while (dec > 52) {
sNum += repNum;
dec -= 51;
}
sNum += repNum.substring(0, dec - 1);
pw.println(sNum);
}
// pw.println(num1.divide(num2, dec,
// RoundingMode.FLOOR).toString());
}
}
'dec' और 'case' क्या हैं? – Joni
डीसी आपके द्वारा विस्तारित दशमलव की संख्या है और मामले यह है कि यदि आप कई तरीकों से संख्या के दशमलव विस्तार को मुद्रित करना चाहते हैं, तो यदि मैं इनपुट 2 4 6 इनपुट करता हूं तो यह 4 दशमलव तक विस्तारित संख्या को मुद्रित करेगा इसे फिर से 6 वें –