الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن تقسيم الأعداد إلى أحاد وعشرات و..؟

مغلق
بدأه طارق عتيق في 24 مارس 2005 · 4 رد · 703 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

عندي سؤال هو:

كيف يمكن تقسيم الأعداد رياضياً إلى أحاد وعشرات ومئات وألوف وهكذا، بحيث يستقبل البرنامج مثلاً العدد:

5678

ويخرجه كـ

5

6

7

8

أريد الجواب لو سمحتم دون استخدام دوال خارجية.

وشكراً

#2

بأخد الباقي من قسمة العدد على عشرة ثم تكرار العملية على العدد الناتج

لكن بهذه الطريقة تخرج الأعداد بعكس الترتيب الذي تريده لذلك يمكنك استخدام Recursion.

#3

Iهذا الرابط به خواريزمية تفكيك الأعداد رياضيا إلى آحاد وعشرات و مئات

أنقر هنا

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#4

السلام عليكم

انظر يا أخى الى هذا الكود

int main(int argc, char *argv[])
{
    int value = 5614, num1 , num2 , num3 , num4;
    
    num1= value / 1000;
    num2 =(value / 100)%10;
    num3 =(value / 10)%10;
    num4 =value % 10;
    cout<<num1 <<"\n"<< num2<< "\n" <<num3 <<"\n"<< num4<<endl;
  
  system("PAUSE");	
  return 0;
}
#5

شكرا جزيلاً لكم على سرعة الرد.

لقد وجدت طريقة أخرى باستخدام تكرار while:

// the purpose of the program to enter number (here it's less than
// 1000) then put every number in line alone
// Example: If you enter 5678 the output will be:
// 5
// 6
// 7
// 8
#include<iostream.h>

void main()
{
	int num=0,times=0;

	cout<<"Please enter number less than 10000:";
	cin>>num;

	while(num>1000)
	{
  num -= 1000;
  times++;
	}
	cout<<times<<endl;

	times = 0;
	while(num>100)
	{
  num -= 100;
  times++;
	}
	cout<<times<<endl;

	times = 0;
	while(num>10)
	{
  num -=10;
  times++;
	}
	cout<<times<<endl<<num<<endl;
	cin>>times;
}

لكن بالتأكيد الطرق السابقة أفضل بكثير وأقصر ;)

هذا الموضوع مغلق.

مواضيع مشابهة