PDA

View Full Version : سوال: چگونه این مساله برنامه نویسی با PHP حل کرد؟ فوریه دوستان



lordofphp
جمعه 09 دی 1390, 17:17 عصر
سلام

دوستان تو مسابقه دانش آموزی بیان من زبانم رو php انتخاب کردم و مسئله هپ هپ رو گفت حل کنم

از مسئله عکس گرفتم
http://5up.ir/images/1klv4k2auzsafylflp06.png

ولی یه قسمت میزنه خروجی برنامه و کد برنامه

من یکم گیج شدم آخه اگه سی شارپ اینا بود آره ولی پی اچ پی تفسیری و اینطوری نیست

منظور از خروجی چیه؟

منظور از خروجی اون فایلی که خودش میده هستش که با نامی مثل problem1.in هستش ؟

من برا نوشتنش از کد زیر استفاده کردم


<? php $fp = fopen("problem1.in","r"); ?>

ممنون

lordofphp
جمعه 09 دی 1390, 21:11 عصر
سلام

کسی بلد نیست این رو حل کنه

لطفا کمک کنید دوستان فوریه!!!!!!

ayub_coder
جمعه 09 دی 1390, 21:53 عصر
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="" method="post">
<input type="text" name="txtinput" id="txtinput" />
<input type="submit" name="btnsend" id="btnsend" value="Submit" />
</form>
<br/>

<?php
if(isset($_POST['txtinput']))
{
$inp = $_POST['txtinput'];

for($i=$inp; $i<= $inp+50 ;$i++)
{
if( ($i % 3) == ($i % 7))
echo $i ."<br />";
}

}

?>
</body>
</html>


بفرما دوست عزیز

lordofphp
شنبه 10 دی 1390, 07:59 صبح
سلام

ببین قبول نمیکنه

یه کد برنامه و یه خروجی برنامه میخواد؟

منظور از کد برنامه همین کد پی اچ پی و منظور از خروجی باز چیه؟ همون فایلی که خودش میده هستش؟

MMSHFE
شنبه 10 دی 1390, 11:15 صبح
دوست گرامی، این مسائل بیشتر توی مسابقات ACM مطرح میشن و معمولاً هم با C مینویسن اما حالا چون با PHP انتخاب کردین، باید به این نکته دقت کنید که قانون این مسابقات اینطوری هست:
قالب نام فایل ورودی: کلمه problem + شماره مسئله + پسوند in
مثال: problem1.in
محتویات فایل ورودی: یک یا چند سطر که در هر سطر، یک دسته از ورودی ها نوشته میشه. مثلاً درمورد مسئله شما:
14
قالب نام فایل خروجی: کلمه problem + شماره مسئله + پسوند out
مثال: problem1.out
محتویات فایل خروجی: یک یا چند سطر که در هر سطر، یک دسته از خروجی های متناظر با همون سطر از ورودی ها نوشته میشه. مثلاً درمورد مسئله شما:
64 63 44 43 42 23 22 21
حالا توی مثالی که توی تصویر زده، قالب فایل خروجی رو تغییر داده و هر عدد رو توی یک سطر نوشته و دلیلش هم اینه که فقط یک ورودی داریم که البته اشکالی نداره. این کدی که من نوشتم، دقیقاً طبق قالب تصویری که گذاشتین، کار میکنه:


<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>Hob Hob</title>
</head>
<body>
<?php
if(file_exists('problem1.in')) {
$start = (int) trim(file_get_contents('problem1.in'));
echo '<div style="color: red;">Input: '.$start.'</div>'."\n";
$result = '';
for($i = $start; $i <= $start + 50; $i++) {
if(($i % 3) == ($i % 7)) {
$result .= $i.'\r\n';
}
}
file_put_contents('problem1.out', $result);
echo '<div style="color: blue;">Output: '.nl2br($result).'</div>'."\n";
}
?>
</body>
</html>

موفق باشید.

lordofphp
شنبه 10 دی 1390, 13:43 عصر
سلام

خوب موقع آپلود کردن خروجی برنامه میخواد و کد برنامه

این فایل که خودش میده رو باید ویرایش و با فرمتی دیگه سیو کنیم یا نه ؟

ممنون1

lordofphp
شنبه 10 دی 1390, 13:51 عصر
سایت بیان پاسخ قبول نکرد

چه کنم؟

MMSHFE
شنبه 10 دی 1390, 18:32 عصر
من که گفتم باید با C کار کنید :چشمک:
هرچند اینجا انجمن PHP هست ولی کد ++C اون میشه اینطوری:

#include <stdio.h>
void main(void) {
FILE *fp;
fp = fopen("problem1.in", "r");
int start;
fscanf(fp, "%i", &start);
fclose(fp);
fp = fopen("problem1.out", "w");
for(int i = start; i <= start + 50; i++) {
if((i % 3) == (i % 7)) {
fprintf(fp, "%i\r\n", i);
}
}
fclose(fp);
}

فقط بخاطر اینکه مشکلتون رفع بشه :لبخندساده:
موفق باشید.

lordofphp
شنبه 10 دی 1390, 19:02 عصر
سلام

یعنی مسابقات بیان با پی اچ پی نمیشه؟

MMSHFE
شنبه 10 دی 1390, 19:22 عصر
راستش توی سایت که چیزی ننوشته بود که حتماً زبان خاصی باشه. احتمال میدم مشکل از نحوه گرفتن خروجی بوده. به جای r\n\ توی توی کد PHP از کارکتر فاصله (Space) استفاده کنید. همونطور که گفتم، خروجی ها باید توی یک سطر باشن. البته این مورد رو هم خیلی مطمئن نیستم. باید ببینید برای چی رد شده جوابتون. موفق باشید.