هذا تصحيح لكود الأخ momo .. أستاذ أحمد .. يمكنك متابعتها ..
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000
long a;
void condition(long s)
{
if(s==a){printf("oui\n"); exit(0);}
else if (s>a) {printf("non\n"); exit(0);}
}
int main()
{
long s[MAX]={0};int t[MAX]={0},i=0,j=0,k=0,n=0;char buffer [MAX];
printf("enter nombre:\t"); scanf("%d",&a);
itoa (a,buffer,10) ; n=strlen(buffer);
for(;i<n;i++)
t=(int) buffer-'0';
for(i=0;i<n;i++)
{s[0]+=(long)t; condition(s[0]);}
for(i=1;i<n+1;i++)
{s=2*s[i-1]-t[i-1]; condition(s);}
for(k=0,i=n+1;;k++,i++)
for(j=n+k;j>k;j--)
{s+=s[j]; condition(s);}
return 0;
}بالنسبة للBig Ineger هل مشكلتنا هي التعامل مع الأرقام الكبيرة أم سرعة الحل .؟؟
حتى بالنسبة للأرقام ذات ال8 منازل فالحلول المطروحة بطيئة ...
فهل السؤال الآن عن السرعة أم عن الأعداد الكبيرة؟؟
تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 1 يوليو 2012 في 15:07