+4 ovoz
674 ko'rilgan 4 2
Aning B darajasini hisoblash dasturi kerak.bilganlar yozib yuboring lar.Algoritmi boʻlsa ham boʻlaveradi.dasturini oʻzim tuzaveraman.
1<A,B=<10000 oraliqda.ya'ni A va B ning eng katta qiymati 10000 gap teng.
Bu mavzu Dasturlash bo'limida
Teg o'zgartirilgan | 674 ko'rilgan

2 Javob

+1 ovoz
1
Salom. Qaysi til siz uchun qulay bilmayman. Java tilini qanchalik yaxshi bilishiz menga qorong'u. Quyidagi kod java tilida yozilgan. 2 ta funksiya yaratib olamiz biri ko'paytirish 2-chisi darajaga oshirish uchun. sonlarni to'g'ridan to'g'ri ko'paytirganda yoki to'g'ridan to'g'ri darajaga oshirganda natija juda kattalashib ketadi. Dastur g'oyasi shu har bir raqamni alohida ko'paytirib massivga yozib qo'yishga asoslangan.
//Code
class Main {

static final int MAX = 100000;
  
static int multiply(int x, int res[], int res_size) {
  
    int carry = 0;
  
    for (int i = 0; i < res_size; i++) {
    int prod = res[i] * x + carry;
  
    res[i] = prod % 10;
  
    carry = prod / 10;
    }
  
    while (carry > 0) {
    res[res_size] = carry % 10;
    carry = carry / 10;
    res_size++;
    }
    return res_size;
}
  
static void power(int x, int n) {
      
    if(n == 0 ){  
    System.out.print("1");
    return;
}
    int res[] = new int[MAX];
    int res_size = 0;
    int temp = x;
  
    
    while (temp != 0) {
    res[res_size++] = temp % 10;
    temp = temp / 10;
    }
  
    
    for (int i = 2; i <= n; i++)
    res_size = multiply(x, res, res_size);
  
    System.out.print(x + "^" + n + " = ");
    for (int i = res_size - 1; i >= 0; i--)
    System.out.print(res[i]);
}

public static void main(String[] args) {
    int exponent = 100;
    int base = 2;
    power(base, exponent);
}
}
0
Iloji bo`lsa Turbo Paskalda tuzib bering Iltimos
0
nega haliyam Paskalda yozasiz?
0
bu olimpiada masalasi manga shning ucun Pascalda tuzilishi kerak
0
keyin Java ni bilmayman hali o`rganmaganman
0
xmmm. tushunarli. rosti olimpiadalarga hech qatnashmaganman. Keyin men Javadan boshlaganman dasturlashni. Undan keyin python C++ C# php dart tillarini ko'rib chiqdim, lekin Pascal ni o'rganishga qiziqish ham vaqt ham bo'lmadi rosti :) . Siz manimcha yechilish g'oyasini yaxshi tushunmagan ko'rinasiz, g'oyasini yaxshi tushunsangiz boshqa tilga o'girish oson ;)
0 ovoz
0

Men pascalni bilmayman. @MasterX aytganidek boshqa tildagi kodga qarab o'zingiz biladigan tilda kod yozishingiz mumkin. Sizga C++ va php yozganimni ko'rsataman

<-----C++------->
#include <iostream>
#include <math.h>
using namespace std;
int main() {
    float A,B,C,error=0;
    cout<<"A="; cin>>A;
    cout<<"B="; cin>>B;
    if (A>=10000) {
        cout<<"A 10000 dan katta\n";
        error=1;
    }
    if (B>=10000) {
        cout<<"B 10000 dan katta";
        error=1;
    }
    if (error!=1){
        C=pow(A,B);
        cout<<"A^B="<<C;
    }
    return 0;
}
<-----PHP va HTML------->
<html>
    <body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" autocomplete="off">
  A: <input type="text" name="A"><br>
  B: <input type="text" name="B"><br>
  <input type="submit" value='Submit'>
</form>

<?php
$error=0;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $a = (int)$_REQUEST['A'];
    $b = (int)$_REQUEST['B'];
    if($a>=10000){
        echo 'A 10000 dan katta<br>';
        $error=1;
    }
    if($b>=10000){
        echo 'B 10000 dan katta<br>';
        $error=1;
    }
    if($error!=1){
        $c=pow($a,$b);
        echo "A^B=$c";
    }
}
?>
</body>
</html>

Qayta tahrirladi!
0
C++ orqali tuzdim bu masalani lekin menga paskalda yechim kerak edi. Paskalda tuzolmayapman har qanday holatda ham hatolik beryapti
+1
Paskalni o'rganmagan edim. Bilganimda albatta Pascalda ham tuzib berardim

O'xshash savollar

+1 ovoz
1 javob
Bekhzod Bu mavzu Dasturlash bo'limida 12 Noy, 20 savol berdi | 1.1k ko'rilgan
+11 ovoz
1 javob
YOSHDASTURCHI Bu mavzu Dasturlash bo'limida 09 Yan, 18 savol berdi | 323 ko'rilgan
+9 ovoz
4 javob
+8 ovoz
1 javob
golden Bu mavzu Dasturlash bo'limida 06 Dek, 17 savol berdi | 372 ko'rilgan