السؤال السابع من اسئلة الخوارزميات بسم الله الرحمن الرحيم
لديك دالة تقوم باستقبال رقم نريد جمع أرقام هذا الرقم وان كان
مجموع هذه الأرقام اكبر من رقمين تجمعهم مرة اخرى
جتي يصبح رقم واحد (انظر الصورة لاني لا استطيع التوضيح اكثر )
---$ تم اضافة الحلول $----
الحلول :- (كل حل مختلف عن الاخر)
صاحب الحل : ثامر أبو بلقيس
PHP Code:
d=Input.GetText("Input1");
str =d;total = 0
if tonumber(string.len(d)) ==1 then
Dialog.Message("len=",1);
else repeat
for w in string.gmatch(str, "%w") do
total = total + w
end;str =''..total;total=0
until string.len(str)==1
Dialog.Message("SUM=",str);
end
صاحب الحل :
igli
PHP Code:
t = Input.GetText("Input1");
f= 0 ; f1=0 ;
for i=1,#t do f = f+tonumber( String.Mid(t, i, 1)) ; end b = ""..f
if f >= 9 then for i=1,#b do f1= f1+ tonumber( String.Mid(b, i, 1)) ; end
else f1 = f end
Input.SetText("Input2", f1)
صاحب الحل : Ahmed Hatem Ahmed
PHP Code:
number = 18;
--- Solution 1
function SumNumbers(num)
numbers = tostring(num);
numberCount = numbers:len();
sum = numbers:sub(1,1);
for i = 2 , numberCount do
sum = sum + numbers:sub(i,i);
end
if(sum > 9) then return SumNumbers(sum); else return sum; end
end
Result = SumNumbers(number);
Dialog.Message("Result" , Result);
--- Solution 2
function SumNumbers(num) if (num ~= 0) and (num % 9 == 0) then return 9 else return num % 9; end end
Dialog.Message("Result" , SumNumbers(number))