Вниз
Скачать: CL | DM;

Разложение числа на разрядные слагаемые   Найти похожие ветки 

 
Виталий   (2009-07-23 07:11) [0]

Требуется разложить число на разрядные слагаемые, т.е

есть число 11258. нужно получить
11000+200+50+8

поделитесь идеями как это реализовать? у меня пока только одна мысль - сделать таблицу разрядов и по ней проверять. Может есть такой "велосипед"?


 
Palladin ©   (2009-07-23 07:45) [1]

а почему не на 10000+1000+200+50+8 ? или 11000+75+125+30+20+5+3 ?
тебе на какие слагаемые то?


 
Виталий   (2009-07-23 07:53) [2]

[1] да. прошу прощения.

10000+1000+200+58

число нужно разложить именно так.


 
Palladin ©   (2009-07-23 08:02) [3]

выбирай на вкус

Function Pow10(n:Integer):Integer;
Var
i:Integer;
Begin
Result:=1;
For i:=1 to n Do Result:=Result*10;
End;

Procedure Decod2(n:Integer;r:TStrings);
Var
d:Integer;
p:Integer;
c:Integer;
t:Integer;
Begin
d:=1; p:=10; t:=0;
Repeat
 c:=(n mod p)-t;
 r.Add(IntToStr(c));
 t:=t+c;
 Inc(d);
 p:=Pow10(d);
Until (p div 10)>n;
End;

Procedure Decod1(n:Integer;r:TStrings);
Var
i:Integer;
s:String;
Begin
s:=IntToStr(n);
For i:=1 to Length(s) Do
 If s[i]<>"0" Then
  r.Add(IntToStr((Byte(s[i])-Byte("0"))*Pow10(Length(s)-i)));
End;


 
Palladin ©   (2009-07-23 08:04) [4]

Чуть чуть Decod2 доработаный:

Procedure Decod2(n:Integer;r:TStrings);
Var
p:Integer;
c:Integer;
t:Integer;
Begin
p:=10; t:=0;
Repeat
 c:=(n mod p)-t;
 If c<>0 Then
  Begin
   r.Add(IntToStr(c));
   t:=t+c;
  End;
 p:=p*10;
Until (p div 10)>n;
End;


 
Виталий   (2009-07-23 08:09) [5]

ооо...спасибо огромное. сейчас буду смотреть.


 
oldman ©   (2009-07-23 17:53) [6]


> у меня пока только одна мысль - сделать таблицу разрядов
> и по ней проверять.


А пропарсить строку религия запрещает?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
15-1248550614
TStas
2009-07-25 23:36
2009.09.27
Как вставить у страниц номера в 2007 Ворде?


1-1216635647
МистерТ
2008-07-21 14:20
2009.09.27
Как получить следующие XML значения ?


2-1248345894
Bruth
2009-07-23 14:44
2009.09.27
Да вы сами не знаете ответа


1-1216360184
GraySE
2008-07-18 09:49
2009.09.27
WebBrowser - изменения на странице до её отображения


2-1248329999
Лёша
2009-07-23 10:19
2009.09.27
Экпрорт в Excel произвольного набора данных.




   Наверх