View Full Version : سوال: الگوریتم پیدا کردن تعداد رقم های یک عدد
amir_grdo
جمعه 22 شهریور 1387, 04:12 صبح
اگه میشه یه الگوریتم بدید که یک عدد رو بگیره و مشخص کنه این عدد چند رقمی هست.
Salar Ashgi
جمعه 22 شهریور 1387, 09:36 صبح
سلام ، دوست عزیز ، برای اینکار 3 راه وجود داره !!!!
1) روش بازگشتی 2) یک فرمول ریاضی 3) روش حلقه های تکرار
===============================================
1) روش بازگشت : این روش میگه که ، تعداد ارقام هر عدد برابر است با ، تعداد ارقام خارج
قسمت تقسیم آن عدد بر 10 به علاوه یک !!
کد سی پلاس پلاس :
int tedad(int n){
if(n<10)
return 1;
else
return 1+tedad(n/10);
}
===============================================
2) فرمول ریاضی : یک فرمول ریاضی برای تعداد ارقام وجود داره :
http://i38.tinypic.com/ml08ib.jpg
# include <iostream>
# include <conio>
# include <math>
int main()
{
int k,a;
cin>>k;
a=floor(log(k)/log(10))+1;
cout<<a;
getch();
}
================================================
3- روش حلقه های تکرار :
#include <iostream>
#include <conio>
int main(){
int n,k=0;
cin>>n;
while(n!=0){
n/=10;
k++;
}
cout<<k;
getch();
}
===============
موفق و پیروز باشید !!!!
amir_grdo
جمعه 22 شهریور 1387, 13:41 عصر
خیلی ممنون از توضیح کامل و مفیدتون.
ولی در روش سوم کدی که داخل while نوشتین اشتباه نیست؟
Salar Ashgi
جمعه 22 شهریور 1387, 14:36 عصر
خیلی ممنون از توضیح کامل و مفیدتون.
ولی در روش سوم کدی که داخل while نوشتین اشتباه نیست؟
=============================
هر 3 کد تست شده ، و کاملا درست است ، من اشکالی نمی بینم ، داخل While یعنی
تا زمانیکه n مخالف صفر است !!!
اگه باز توضیحی نیاز بود ، در خدمتم !!!
amir_grdo
شنبه 23 شهریور 1387, 00:31 صبح
من متوجه نشدم n/=10 یعنی چی؟
اوبالیت به بو
شنبه 23 شهریور 1387, 01:11 صبح
من متوجه نشدم n/=10 یعنی چی؟
يعني:
n:= n /10;
Salar Ashgi
شنبه 23 شهریور 1387, 08:57 صبح
من متوجه نشدم n/=10 یعنی چی؟
===============================================
سلام ، به این عملگر ها ، عملگرهای جایگزینی گفته میشود ، n/=10 ، یعنی n را بر 10
تقسیم کرده ، و خارج قسمت تقسیم در n قرار می گیرد !!! و برای سایر عملگرها (+و - و*)
نیز اینگونه است !!!
mahdi.kheibari
شنبه 15 تیر 1398, 13:50 عصر
سلام دوست عزیز خسته نباشید میتوانید همین مسئله را با زبان #C کد نویسی و پیاده سازی کنید؟ ممنون:قلب::قلب:
m.m.dadzeh
چهارشنبه 25 تیر 1399, 11:16 صبح
استاد میشه این کد را به ربان پایتون بنویسید.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.