[ad_1]
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; int sock = n; int count = 0; while (sock > 0) { count+=1; if (sock % m == 0) { sock++; } sock--; } cout << count << endl; return 0; }
ما حاولت:
في الواقع كنت أعمل مع حلقات while ولكن هناك بعض المشاكل في الكود الخاص بي، لا توجد طباعة أي شيء لقد قمت بفحصه بطرق مختلفة ولكن لم يأتي أي حل
الحل 1
أعتقد أن المشكلة هنا:
سي ++
if (sock % m == 0) { sock++; } sock--; // If you add 1 to sock and then subtract 1 it will go on for ever
لكنني لست متأكدًا مما يفترض أن تفعله سطور التعليمات البرمجية هذه.
الحل 2
في أقرب وقت sock
قابل للقسمة على m
، يتم زيادتها وتناقصها على الفور مرة أخرى – لذا فإن تكرار الحلقة التالية له نفس القيمة sock
والحلقة لا تخرج أبدًا.
نظرًا لأن الحلقة لا تخرج أبدًا، فلن يصل الكود أبدًا إلى cout
ولن ترى أي مخرجات أبدًا.
لكي نكون صادقين، دقيقتين مع مصحح الأخطاء كانت ستوضح لك ذلك بنفسك: اعتد على اختبار التعليمات البرمجية الخاصة بك في مصحح الأخطاء لأنه أفضل صديق تطوير لديك!
[ad_2]
コメント