اولین باره که به کاهو میای؟ راهنمای سایت رو حتما بخون!

ورود ثبت‌نام راهنما درباره‌ی کاهو
پرسش‌ها برچسب‌ها کاربر‌ها سوال بپرسید!

آمار پرسش:

  • پرسیده شده: 2014-06-02 00:21:46 -0500
  • مشاهده شده: 432 بار
  • بروز شده: 2015-06-23 20:49:27 -0500

پرسش‌های مشابه:

دوربین های عکاسی

سوال ۱ روز دوم مرحله ۲ دوره ۲۳: رشته‌ی نزدیک

بازی رنگی - سوال ۱ - مرحله ۲ - ۱۳۹۳

وزنه‌ها و ماشین جادویی - سوال ۲ - مرحله ۲ - ۱۳۹۳

گاوی خسیس - سوال ۳ - مرحله ۲ - ۱۳۹۳

انتقال مهره‌های گاوی - سوال ۴ - مرحله ۲ - ۱۳۹۳

یافتن کوچکترین پیچ و مهره با مقایسه آنها

دنباله و جادوگر - دوره ی 24 - مرحله ی 2

مسئله ی مسیر و شبکه - مرحله ی 2 – دوره ی 23

بازی خاموش کردن چراغ ها

نکاتی در مورد نوشتن پاسخ:

در این قسمت می‌تونی به یک پرسش پاسخ بدی. اگه می‌خوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخ‌ها مفید هستند حتما بهشون رای بده تا پرسش‌ها و پاسخ‌های خوب مشخص بشن.

استفاده از ویرایشگر:

توی قسمت پیش‌نمایش می‌تونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
می‌تونی از تگ‌های معمولی و ساده‌ی html هم استفاده کنی.
با دکمه‌هایی که بالای ویرایش‌گر قرار دارند کلی کار می‌شه کرد. از عکس‌گذاشتن بگیر تا لیست شماره‌دار. حتما امتحان‌شون کن.

علائم ریاضی:

برای نوشتن علائم ریاضی می‌تونی از Mathjax استفاده کنی. راهنمای Mathjax رو از سایت math.stackexchange بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.

مجموع اعداد ۱ تا ۱۰۰۰۰۰ پس از پاک کردن تمام صفرها

6

اعداد 1 تا 100,000 را روی کاغذ با یک فاصله بین هر دو عدد مینویسیم . سپس رقم های صفر آنها را پاک میکنیم ( یعنی آنها را با فاصله خالی جایگزین میکنیم ) . توجه کنید با این کار ممکن است یک عدد به عدد یا به اعدادی دیگر تبدیل شود مثلا : از 70090 دو عدد 7 و 9 تولید میشود . جمع اعداد حاصل چند است ؟؟

نحوه ی محاسبه ی خود را به دقت و طی مراحل مشخص توضیح دهید

مرحله۲ دوره15
2014-06-02 00:21:46 -0500
هه هه هه 755 ● 4 ● 8 ● 23
پاک‌کردن   ویرایش سوال
نظرات

دوست عزیز، هه هه هه: لطفا در برچسب گذاری به جای فاصله از خط تیره استفاده کنید.

2014-06-02 00:22:54 -0500 المپیادی

سوال جالبی بود... +1

2015-03-12 14:50:14 -0500 سی پلاس پلاس

سلام میدونستید انجمن علمی نخبگان دانشگاه صنعتی شریف مسابقه تخصصی مهارت سنجی برنامه نویسی و داده کاوی گذاشته است آدرس سایتش www.fanavard.com

2015-08-06 06:50:07 -0500 امیر شکری

سلام میگم یک سر به سایت www.fanavard.ir بزنید. مسابقات برنامه نویسی شون شروع شده. گواهی رسمی از طرف دانشگاه شریف می ده. 50 تا سکه هم جایزشه

2016-10-26 10:30:56 -0500 امیر شکری

2 پاسخ

2

کدش برای تا ۹۹۹۹۹ این هست

    #include <iostream>
    #include <sstream>
    using namespace std;

    int N = 99999;

    int main() {
      long long sum = 0;
      for (int i=1; i<=N; i++) {
        stringstream ss;
        ss << i;
        string s = ss.str();
        for (int j=0; j<s.length(); j++) if (s[j] == '0') s[j] = ' ';
        ss.str(s);

        for (int x; ss >> x; ) sum += x;
      }
      cout << sum << endl;
      return 0;
    }

که جواب می‌ده 3362940000 و با یه دونه‌ی صد هزار می شه 3362940001.


اما راه حلش:

تعریف می‌کنیم $f(x)$ برابرست با حاصل‌جمع اعداد $x$ رقمی که توشون صفر ظاهر نمی‌شه. واضحه که $f(1)=45$ و اگه دقت کنیم چون میانگین هر رقم بدون صفر ۵ هست، میانگین کل برابر با $\underbrace{{۵۵\cdots ۵}}_{x\text{ مرتبه}}$ هست و تعدادشون هم که $9^x$ پس خواهیم داشت:

  • $f(2)=55\times9^۲=4455$

  • $f(3) = 555\times 9^۳=404595$

  • $f(4)=5555\times9^4=36446355$

  • $f(۵)=55555\times9^۵=3280467195$

حالا برای هر کدوم از این ۵ تا کافیه بشماریم که چند بار در کل این دنباله ظاهر می‌شن.

برای $f(5)$ که به وضوح جواب یک هست. برای $f(4)$ جواب ۲ هست چرا که در دو رشته‌ی 0XXXX و XXXX0 می‌تونه بیاد. (X نماد یک رقم غیرصفر هست و ؟ نماد یک رقم باصفر). برای $f(3)$ تعداد حالات ۲۱ هست. ۱۰ بار در دنباله‌های 0XXX? و ?XXX0 و یک بار هم در 0XXX0.

برای $f(2)$ جواب ۲۲۰ هست. ۱۰۰ بار در هر کدوم از ??XX0 و 0XX?? و ۱۰ بار هم در هر کدوم از ?0XX0 و 0XX0?.

برای $f(1)$ تعداد حالاتی که ممکنه ساخته بشه یه عدد تک رقمی برابر ۲۳۰۰ هست. مشابهاً می‌شه پیدا کرد.

پس جواب کل می‌شه $2300\times f(1)+220\times f(2)+21\times f(3)+2\times f(4)+f(5)$ که با جاگذاری می‌شه 3362940000 و نهایتاً هم اون یه دونه‌ی ۱۰۰۰۰۰ رو بهش اضافه می‌کنیم.

--آیدین

2015-03-23 16:41:44 -0500
آیدین 343 ● 6
پاک‌کردن   ویرایش پاسخ
نظرات

+1

2015-03-23 17:12:05 -0500 حمیدرضاه
1

یه جایی خوندم که با توجه به بخشپذیری بر 9 حل میشه با این حال کدشو زدم جواب آخرش در اومد اگه که یه وقت به نتیجه رسیدی و خواستی چک کنی : 3362940001

2014-06-02 06:36:28 -0500
هشئذذ 459 ● 6
پاک‌کردن   ویرایش پاسخ

پاسخ شما

فقط در صورتی که پاسخی برای این پرسش دارید، آن را اینجا بنویسید و برای بحث کردن از قسمت «ثبت‌ نظر» استفاده کنید. شما می‌توانید قبل از وارد شدن به سایت پاسخ خود را بنویسید. این پاسخ ذخیره می‌شود و زمانی که شما وارد سایت شدید یا ثبت‌نام کردید منتشر می‌شود.

پیش‌نمایش:

کلیه‌ی حقوق این سایت متعلق به کمیته‌ی ملی المپیاد کامپیوتر است.