PDA

View Full Version : مبتدی: مشکلی با اعداد بزرگ



elyas74
سه شنبه 07 آبان 1392, 23:35 عصر
سلام،من یک کد از منبع سوال codeforses نوشتم ولی موقع ضرب 2 عدد بزرگ که با هم ضرب میشن،عدد یا درست نمایش داده نمیشن یا اشتباه حساب میشن،

ورودی سوال n و m طول و عرض محیطی هستند که قراره سنگفرش بشه و a طول هر سنگفرش مربع شکل و توضیح دیگه هم این که کُل محیط باید پوشش داده بشه حتی اگه سنگ بیرون بزنه و با این شرط ها کمترین تعداد سنگ فرش رو میخوایم،این کد منه

#include <iostream>
#include <cmath>

using namespace std ;

int main ()
{
long int m ,n ,a;
long sum,temp ,temp2 ;

cin>>m>>n>>a ;

if ( m % a == 0 )
temp = m/a ;
else temp = (m/a)+1 ;

if ( n % a == 0 )
temp2 = n/a ;
else temp2 = (n/a)+1 ;

sum = temp*temp2 ;
cout<< sum <<endl ;
}

برای ورودی های عادی مشکلی نیست ولی اگه m =1000000000 n =1000000000 a=193 باشه جواب غلطه:متفکر:،ممنون میشم از راهنماییتون

storm_saeed
چهارشنبه 08 آبان 1392, 06:40 صبح
عدد هاتو long long تعریف کن یا در آخر sum =(long long ) temp * (long long ) temp2 قرار بده