PDA

View Full Version : آموزش: برنامه یافتن تعداد ارقام



mmvalinezhad
چهارشنبه 23 بهمن 1392, 00:18 صبح
مسئله:برنامه ای بنویسید که با وارد کردن عددی تعداد ارقام آن را به دست آورد. #include <stdio.h>
#include <conio.h>
#include <math.h>

int main()
{
int x,n=1;
printf("Enter a number:");
scanf("%d",&x);
while(x>=(pow(10,n)))
n++;
printf("\n%d",n);
getch();
return 0;
}
مکانسم:روش کار این برنامه این طور است که عددی از کاربر گرفته می شود و بررسی می شود که آن عدد از چه عدد مضرب 10 مساوی یا بزرگتر است هنگامی که آن عدد مضرب ده با استفاده ازز حلقه While پیدا شد تعداد صفر های آن (توان 10) تعداد ارقام است.
توضیحات:


از ابتدا مقدار اولیه متغیر n یک تعریف شده زیرا ممکن است با یک رقمی بودن عدد ورودی حلقه ی while کار نکند و شرط آن نقض شود،پس باید مقدار یک به عنوان تعداد ارقام چاپ شود.
از تابع pow برای به تان رساندن استفاده شده است.این تابع در کتابخانه math.h قرار دارد و در این تابع آرگومان اول پایه و آرگومان دوم توان است.

نامساوی استفاده شده در این برنامه قسمتی از روشی است که قبلا برای به دست آوردن ب.م.م در مطالب مربوط به ریاضی تیزهوشان یافته بودم.


منبع:سی با طعم هندوانه (http://watermelon-c.blog.ir/1392/11/23/q5)

mehdi.mousavi
چهارشنبه 23 بهمن 1392, 04:02 صبح
سلام.
یکی از روش هایی که عموما برای حل این مساله نادیده گرفته میشه استفاده از Log10 برای بدست آوردن تعداد ارقام عدد هستش.
بدین ترتیب که کافیه Log10 عدد مورد نظر رو بدست بیاریم و اونو به اولین عدد صحیح بزرگتر، گرد کنیم. فرضا، Log10 عدد 9876 برابر
است با : 3.9945810812598946674902134493037 که اگر گرد بشه، عدد 4 بدست خواهد اومد (و 9876 نیز 4 رقمه).

موفق باشید.