Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] Skrypt skracania zer
kalafior122
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


Witam muszę napisać skrypt skracania zer a kompletnie nie wiem jak się do tego zabrać, może mi ktoś w tym pomóc?
Powód edycji: [Daiquiri]: Przenoszę do odpowiedniego działu
Go to the top of the page
+Quote Post
toaspzoo
post
Post #2





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Skracania zer ?
Może coś więcej nam powiesz ? (IMG:style_emoticons/default/sciana.gif)

Ten post edytował toaspzoo 18.07.2012, 22:36:51
Go to the top of the page
+Quote Post
sobol6803
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


  1. $liczba = '0.0000001';
  2. $liczba = str_replace('0', '', $liczba);
  3. echo $liczba;


(IMG:style_emoticons/default/laugh.gif)
Go to the top of the page
+Quote Post
kalafior122
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


i co to działa?? Na to to raczej bym sam wpadł. Bo tu chodzi o to że gdy mamy np. 200/40 i możemy skrócić zera wtedy dzielimy nie przez 200/40 tylko 20/4

A co do postu 2xup to ty chyba nie miałeś fizyki (IMG:style_emoticons/default/tongue.gif)

Ten post edytował kalafior122 19.07.2012, 09:35:23
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
i co to działa?? Na to to raczej bym sam wpadł
No raczej bys nie wpadł, skoro napisałeś posta na forum...

Cytat
A co do postu 2xup to ty chyba nie miałeś fizyki
Może jednak napisz o co ci chodzi bo niby skad mamy wiedziec ze akurat ci chodziło o termin z fizyki? Na tym forum ludzie mają kupę głupich określeń na to co chcą zrobić i sorki, ale nawet najwieksza wrozka moze miec problem z załapaniem o co im chodzi...

[POMOCY] i na przyszłośc daruj sobie taki tagi. One niczemu nie służą
Go to the top of the page
+Quote Post
redeemer
post
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Ja miałem fizykę i też nie mam pojęcia co kryje się pod pojęciem "skracanie zer"? Może 0.001 * 1000? (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
lukaskolista
post
Post #7





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


http://pl.wikipedia.org/wiki/Najwi%C4%99ks...%B3lny_dzielnik Rozklad na czynniki pierwsze, teraz wystarczy to tylko przeniesc na kod.

Ten post edytował lukaskolista 19.07.2012, 09:54:37
Go to the top of the page
+Quote Post
kalafior122
post
Post #8





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


chodzi o to:

(IMG:http://www.fotoszok.pl/upload/799df5d8.png)
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




załamka.... przecież to jest matematyka a nie fizyka...
Go to the top of the page
+Quote Post
kalafior122
post
Post #10





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 19.07.2012, 11:01:13 ) *
załamka.... przecież to jest matematyka a nie fizyka...

ee ja tam najwięcej tego robiłem na fizyce (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




s=200
t=20

Liczysz zera od prawej dla każdej z liczb. Następnie kasujesz od prawej u każdej z liczb najmniejszą liczbę zer z dwóch liczb. a kasowanie to poprostu dzielenie przez daną potęgę 10.
A liczbe zer to chyba umiesz policzyć?

Cytat
ee ja tam najwięcej tego robiłem na fizyce
A jak na fizyce idziesz siku to masz problem fizyczny czy biologiczny??
Następnym razem opisuj problem od razu a nie sypiesz pojęciami których sam nie rozumiesz.
Go to the top of the page
+Quote Post
kalafior122
post
Post #12





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


tak szczerze to nie (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Shido
post
Post #13





Grupa: Zarejestrowani
Postów: 121
Pomógł: 22
Dołączył: 22.06.2012

Ostrzeżenie: (0%)
-----


Możesz np. rozbić sobie liczby na tablicę po jednym znaku i od końca sprawdzać czy znak == 0 i dawać np. $ile++; az nie trafi się na inny znak.
Tak wiem nieoptymalne, ale innego pomysłu nie mam.

I w sumie wyszło że chodziło ci o coś zupełnie innego niż każdy myślał...
Trza wyrażać się precyzyjnie, bo skracanie zer to:
0001 -> 1
10000 -> 1
1.3000 -> 1.3
0101010 -> 10101
0101010 -> 111
i też to co ty podałeś.

Ten post edytował Shido 19.07.2012, 10:31:06
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #14





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


A w matematycznych funkcjach nie ma przypadkiem czegoś co rozwiąże Twój problem?
http://php.net/manual/pl/book.math.php
Go to the top of the page
+Quote Post
kalafior122
post
Post #15





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


Cytat(wNogachSpisz @ 19.07.2012, 11:34:34 ) *
A w matematycznych funkcjach nie ma przypadkiem czegoś co rozwiąże Twój problem?
http://php.net/manual/pl/book.math.php


Niestety nie
Go to the top of the page
+Quote Post
markonix
post
Post #16





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


A jaki sens jest w ogóle tego skryptu?
Przyjmując, że chcesz napisać funkcje to jakie ma przyjmować argumenty i jakie wartości zwracać?
Dwie liczby i zwracać dwie liczby "skrócone" o te zera?
Go to the top of the page
+Quote Post
kalafior122
post
Post #17





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


tak. Głównie chodzi o zamianę zer które można skrócić na zera skreślone tak jak jest pokazane na obrazku
Go to the top of the page
+Quote Post
peter13135
post
Post #18





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


najpierw ten string podziel sobie za pomocą explode na dwie liczby.

czyli takie coś :
Kod
'120/60'

zamień na
Kod
array('120','60')

następnie obie wartości zamień na integer.
Kod
array(120,60)

następnie sprawdzaj czy obie liczby dzielą się przez 10 bez reszty. 120%10== 0, więc się dzieli przez 10. 60%10==0, więc też się dzieli przez 10.
Więcej na ten temat masz tutaj : http://php.net/manual/en/internals2.opcodes.mod.php
Jeśli obie dzielą się bez reszty, to obie dzielisz przez 10 i sprawdzasz od początku czy dzielą się przez 10. Jeśli nie to masz już wersję "skróconą" i robisz dalej co chcesz.

Tylko, że... czy Ty nie chciałbyś przypadkiem, żeby ten skrypt np. takie działanie: 140/70 skrócił do 2/1 lub po prostu 2 ? W Twoim przypadki skróci tylko do 14/7.
Do tego warto użyć algorytmu "sito eratostensa" (czy jakoś tak) bo jak wiadomo - każda liczba złożona to iloczyn liczb pierwszych.
Go to the top of the page
+Quote Post
kalafior122
post
Post #19





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

Ostrzeżenie: (0%)
-----


a tak po ludzku? chodzi mi tylko i wyłącznie o zamianę zer które się nadają do skrócenia na skreślone czyli żeby wyświetlało
tak: 170/40. pisz na GG 10714401
Go to the top of the page
+Quote Post
Shido
post
Post #20





Grupa: Zarejestrowani
Postów: 121
Pomógł: 22
Dołączył: 22.06.2012

Ostrzeżenie: (0%)
-----


Napisał ci już po ludzku. Widać że liczysz na gotowca.
Kolejna sprawa to taka że forum jest po to by tu rozwiązywać problemy, a nie przez GG.

1. Zamieniasz liczby na inta ( by sie skrypt nie rozsypał )
2. Sprawdzasz czy liczba ma resztę z dzielenia przez 10
3. Jeżeli nie ma ( liczba%10 == 0 and liczba2%10 == 0) to ucinasz z obu ostatni znak
4. Sprawdzanie i ucinanie w pętli która skończy się gdy któraś z liczb nie będzie już podzielna bez reszty przez 10.

Bardziej po ludzku się nie da.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.09.2025 - 12:14