Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql]sumowanie liczb
MaciekDZN
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 6.01.2008
Skąd: Działoszyn

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


witam, mam ciekawy problem, szukałem na forum ale nic nie moglem znaleźć (IMG:style_emoticons/default/sad.gif)

a więc tak:
mam pewną ilość liczb w bazie danych
np.
1346
1650
5645
3643
2346
7554
3457
765

skrypt ma za zadanie sumować pokolei liczby do momentu aż wynik wyniesie np. 1000 lub 2000 lub 3000 aż do 10000, gdy wynik będzie większy niż 10000 to wtedy zaczyna sumować liczy od początku tylko że od następnej liczby czyli jak mamy
1346+1650=2996
1346+1650+5645=8641
1346+1650+5645+3643=12284
i zaczyna od nowa ale już od liczby 1650
1650+5645=7295
itd... aż do momentu gdy suma licz będzie równa 1000 lub jego wielokrotności to wtedy zacznie znowu od następnej liczby

ew. może też być suma każdej liczby z każdą

napisałem coś w podobnego ale mój skrypt ma wiele wad

  1. <?php
  2.  
  3. function wygral($wynik1)
  4. {
  5. if($wynik1==1000)
  6. echo "<b>Wygrales 1000</b><br>";
  7. if($wynik1==2000)
  8. echo "<b>Wygrales 2000</b><br>";
  9. if($wynik1==3000)
  10. echo "<b>Wygrales 3000</b><br>";
  11. if($wynik1==4000)
  12. echo "<b>Wygrales 4000</b><br>";
  13. if($wynik1==5000)
  14. echo "<b>Wygrales 5000</b><br>";
  15. if($wynik1==6000)
  16. echo "<b>Wygrales 6000</b><br>";
  17. if($wynik1==7000)
  18. echo "<b>Wygrales 7000</b><br>";
  19. if($wynik1==8000)
  20. echo "<b>Wygrales 8000</b><br>";
  21. if($wynik1==9000)
  22. echo "<b>Wygrales 9000</b><br>";
  23. if($wynik1==10000)
  24. echo "<b>Wygrales 10000</b><br>";
  25. }
  26.  
  27. function czy_wygral($l1, $l2, $l3, $l4, $l5, $l6, $l7)
  28. {
  29. //1111111111111111111111111111111
  30. if($l1>0 and $l2>0)
  31. {
  32. $wynik1=$l1+$l2;
  33. echo "$l1+$l2=$wynik1<br>";
  34. wygral($wynik1);
  35. }
  36.  
  37. if($l1>0 and $l2>0 and $l3>0)
  38. {
  39. $wynik1=$l1+$l2+$l3;
  40. echo "$l1+$l2+$l3=$wynik1<br>";
  41. wygral($wynik1);
  42. }
  43.  
  44. if($l1>0 and $l2>0 and $l3>0 and $l4>0)
  45. {
  46. $wynik1=$l1+$l2+$l3+$l4;
  47. echo "$l1+$l2+$l3+$l4=$wynik1<br>";
  48. wygral($wynik1);
  49. }
  50.  
  51. if($l1>0 and $l2>0 and $l3>0 and $l4>0 and $l5>0)
  52. {
  53. $wynik1=$l1+$l2+$l3+$l4+$l5;
  54. echo "$l1+$l2+$l3+$l4+$l5=$wynik1<br>";
  55. wygral($wynik1);
  56. }
  57.  
  58. if($l1>0 and $l2>0 and $l3>0 and $l4>0 and $l5>0 and $l6>0)
  59. {
  60. $wynik1=$l1+$l2+$l3+$l4+$l5+$l6;
  61. echo "$l1+$l2+$l3+$l4+$l5+$l6=$wynik1<br>";
  62. wygral($wynik1);
  63. }
  64.  
  65. if($l1>0 and $l2>0 and $l3>0 and $l4>0 and $l5>0 and $l6>0 and $l7>0)
  66. {
  67. $wynik1=$l1+$l2+$l3+$l4+$l5+$l6+$l7;
  68. echo "$l1+$l2+$l3+$l4+$l5+$l6+$l7=$wynik1<br>";
  69. wygral($wynik1);
  70. }
  71.  
  72.  
  73.  
  74. //2222222222222222222222222222222 bez 1
  75. if($l2>0 and $l3>0)
  76. {
  77. $wynik1=$l2+$l3;
  78. echo "$l2+$l3=$wynik1<br>";
  79. wygral($wynik1);
  80. }
  81.  
  82. if($l2>0 and $l3>0 and $l4>0)
  83. {
  84. $wynik1=$l2+$l3+$l4;
  85. echo "$l2+$l3+$l4=$wynik1<br>";
  86. wygral($wynik1);
  87. }
  88.  
  89. if($l2>0 and $l3>0 and $l4>0 and $l5>0)
  90. {
  91. $wynik1=$l2+$l3+$l4+$l5;
  92. echo "$l2+$l3+$l4+$l5=$wynik1<br>";
  93. wygral($wynik1);
  94. }
  95.  
  96. if($l2>0 and $l3>0 and $l4>0 and $l5>0 and $l6>0)
  97. {
  98. $wynik1=$l2+$l3+$l4+$l5+$l6;
  99. echo "$l2+$l3+$l4+$l5+$l6=$wynik1<br>";
  100. wygral($wynik1);
  101. }
  102.  
  103. if($l2>0 and $l3>0 and $l4>0 and $l5>0 and $l6>0 and $l7>0)
  104. {
  105. $wynik1=$l2+$l3+$l4+$l5+$l6+$l7;
  106. echo "$l2+$l3+$l4+$l5+$l6+$l7=$wynik1<br>";
  107. wygral($wynik1);
  108. }
  109.  
  110.  
  111.  
  112. //3333333333333333333333333333333 bez 1,2
  113. if($l3>0 and $l4>0)
  114. {
  115. $wynik1=$l3+$l4;
  116. echo "$l3+$l4=$wynik1<br>";
  117. wygral($wynik1);
  118. }
  119.  
  120. if($l3>0 and $l4>0 and $l5>0)
  121. {
  122. $wynik1=$l3+$l4+$l5;
  123. echo "$l3+$l4+$l5=$wynik1<br>";
  124. wygral($wynik1);
  125. }
  126.  
  127. if($l3>0 and $l4>0 and $l5>0 and $l6>0)
  128. {
  129. $wynik1=$l3+$l4+$l5+$l6;
  130. echo "$l3+$l4+$l5+$l6=$wynik1<br>";
  131. wygral($wynik1);
  132. }
  133.  
  134. if($l3>0 and $l4>0 and $l5>0 and $l6>0 and $l7>0)
  135. {
  136. $wynik1=$l3+$l4+$l5+$l6+$l7;
  137. echo "$l3+$l4+$l5+$l6+$l7=$wynik1<br>";
  138. wygral($wynik1);
  139. }
  140.  
  141.  
  142.  
  143. //4444444444444444444444444444444 bez 1,2,3
  144. if($l4>0 and $l5>0)
  145. {
  146. $wynik1=$l4+$l5;
  147. echo "$l4+$l5=$wynik1<br>";
  148. wygral($wynik1);
  149. }
  150.  
  151. if($l4>0 and $l5>0 and $l6>0)
  152. {
  153. $wynik1=$l4+$l5+$l6;
  154. echo "$l4+$l5+$l6=$wynik1<br>";
  155. wygral($wynik1);
  156. }
  157.  
  158. if($l4>0 and $l5>0 and $l6>0 and $l7>0)
  159. {
  160. $wynik1=$l4+$l5+$l6+$l7;
  161. echo "$l4+$l5+$l6+$l7=$wynik1<br>";
  162. wygral($wynik1);
  163. }
  164.  
  165.  
  166.  
  167. //5555555555555555555555555555555 bez 1,2,3,4
  168. if($l5>0 and $l6>0)
  169. {
  170. $wynik1=$l5+$l6;
  171. echo "$l5+$l6=$wynik1<br>";
  172. wygral($wynik1);
  173. }
  174.  
  175. if($l5>0 and $l6>0 and $l7>0)
  176. {
  177. $wynik1=$l5+$l6+$l7;
  178. echo "$l5+$l6+$l7=$wynik1<br>";
  179. wygral($wynik1);
  180. }
  181.  
  182.  
  183. //6666666666666666666666666666666 bez 1,2,3,4,5
  184. if($l6>0 and $l7>0)
  185. {
  186. $wynik1=$l6+$l7;
  187. echo "$l6+$l7=$wynik1<br>";
  188. wygral($wynik1);
  189. }
  190.  
  191. //1111111111111111111111111111111 bez 2
  192. if($l1>0 and $l3>0)
  193. {
  194. $wynik1=$l1+$l3;
  195. echo "$l1+$l3=$wynik1<br>";
  196. wygral($wynik1);
  197. }
  198.  
  199. if($l1>0 and $l3>0 and $l4>0)
  200. {
  201. $wynik1=$l1+$l3+$l4;
  202. echo "$l1+$l3+$l4=$wynik1<br>";
  203. wygral($wynik1);
  204. }
  205.  
  206. if($l1>0 and $l3>0 and $l4>0 and $l5>0)
  207. {
  208. $wynik1=$l1+$l3+$l4+$l5;
  209. echo "$l1+$l3+$l4+$l5=$wynik1<br>";
  210. wygral($wynik1);
  211. }
  212.  
  213. if($l1>0 and $l3>0 and $l4>0 and $l5>0 and $l6>0)
  214. {
  215. $wynik1=$l1+$l3+$l4+$l5+$l6;
  216. echo "$l1+$l3+$l4+$l5+$l6=$wynik1<br>";
  217. wygral($wynik1);
  218. }
  219.  
  220. if($l1>0 and $l3>0 and $l4>0 and $l5>0 and $l6>0 and $l7>0)
  221. {
  222. $wynik1=$l1+$l3+$l4+$l5+$l6+$l7;
  223. echo "$l1+$l3+$l4+$l5+$l6+$l7=$wynik1<br>";
  224. wygral($wynik1);
  225. }
  226.  
  227. //1111111111111111111111111111111 bez 3
  228. if($l1>0 and $l2>0 and $l4>0)
  229. {
  230. $wynik1=$l1+$l2+$l4;
  231. echo "$l1+$l2+$l4=$wynik1<br>";
  232. wygral($wynik1);
  233. }
  234.  
  235. if($l1>0 and $l2>0 and $l4>0 and $l5>0)
  236. {
  237. $wynik1=$l1+$l2+$l4+$l5;
  238. echo "$l1+$l2+$l4+$l5=$wynik1<br>";
  239. wygral($wynik1);
  240. }
  241.  
  242. if($l1>0 and $l2>0 and $l4>0 and $l5>0 and $l6>0)
  243. {
  244. $wynik1=$l1+$l2+$l4+$l5+$l6;
  245. echo "$l1+$l2+$l4+$l5+$l6=$wynik1<br>";
  246. wygral($wynik1);
  247. }
  248.  
  249. if($l1>0 and $l2>0 and $l4>0 and $l5>0 and $l6>0 and $l7>0)
  250. {
  251. $wynik1=$l1+$l2+$l4+$l5+$l6+$l7;
  252. echo "$l1+$l2+$l4+$l5+$l6+$l7=$wynik1<br>";
  253. wygral($wynik1);
  254. }
  255.  
  256. //1111111111111111111111111111111 bez 4
  257. if($l1>0 and $l2>0 and $l3>0 and $l5>0)
  258. {
  259. $wynik1=$l1+$l2+$l3+$l5;
  260. echo "$l1+$l2+$l3+$l5=$wynik1<br>";
  261. wygral($wynik1);
  262. }
  263.  
  264. if($l1>0 and $l2>0 and $l3>0 and $l5>0 and $l6>0)
  265. {
  266. $wynik1=$l1+$l2+$l3+$l5+$l6;
  267. echo "$l1+$l2+$l3+$l5+$l6=$wynik1<br>";
  268. wygral($wynik1);
  269. }
  270.  
  271. if($l1>0 and $l2>0 and $l3>0 and $l5>0 and $l6>0 and $l7>0)
  272. {
  273. $wynik1=$l1+$l2+$l3+$l5+$l6+$l7;
  274. echo "$l1+$l2+$l3+$l5+$l6+$l7=$wynik1<br>";
  275. wygral($wynik1);
  276. }
  277.  
  278. //1111111111111111111111111111111 bez 5
  279. if($l1>0 and $l2>0 and $l3>0 and $l4>0 and $l6>0)
  280. {
  281. $wynik1=$l1+$l2+$l3+$l4+$l6;
  282. echo "$l1+$l2+$l3+$l4+$l6=$wynik1<br>";
  283. wygral($wynik1);
  284. }
  285.  
  286. if($l1>0 and $l2>0 and $l3>0 and $l4>0 and $l6>0 and $l7>0)
  287. {
  288. $wynik1=$l1+$l2+$l3+$l4+$l6+$l7;
  289. echo "$l1+$l2+$l3+$l4+$l6+$l7=$wynik1<br>";
  290. wygral($wynik1);
  291. }
  292.  
  293. //1111111111111111111111111111111 bez 6
  294. if($l1>0 and $l2>0 and $l3>0 and $l4>0 and $l5>0 and $l7>0)
  295. {
  296. $wynik1=$l1+$l2+$l3+$l4+$l5+$l7;
  297. echo "$l1+$l2+$l3+$l4+$l5+$l7=$wynik1<br>";
  298. wygral($wynik1);
  299. }
  300. //
  301. }
  302.  
  303. $liczba[1] = 1023;
  304. $liczba[2] = 423;
  305. $liczba[3] = 2345;
  306. $liczba[4] = 261;
  307. $liczba[5] = 3055;
  308. $liczba[6] = 1894;
  309. $liczba[7] = 106;
  310. $liczba[8] = 25;
  311. $liczba[9] = 2075;
  312. $liczba[10] = 1001;
  313. $liczba[11] = 999;
  314. $liczba[12] = 56;
  315. $liczba[13] = 999;
  316. $liczba[14] = 999;
  317. $liczba[15] = 1;
  318. $liczba[16] = 500;
  319. $liczba[17] = 4500;
  320. $liczba[18] = 386;
  321. $liczba[19] = 4607;
  322. $liczba[20] = 4392;
  323. $liczba[21] = 1396;
  324. $liczba[22] = 914;
  325.  
  326. echo "Liczby które podales:<br>";
  327. for($u=1;$u<=22;$u++)
  328. {
  329. echo "$liczba[$u]<br>";
  330. }
  331. echo "<br><br>";
  332.  
  333. /////////////////////////
  334. //wy�wietlenie wyników://
  335. /////////////////////////
  336.  
  337. echo "NIżej wy�wietlš się sumy 2 kolejnych liczb<br>";
  338.  
  339. $q1=1;
  340. $q2=2;
  341. $q3=3;
  342. $q4=4;
  343. $q5=5;
  344. $q6=6;
  345. $q7=7;
  346.  
  347. for($t=0;$t<=22;$t++)
  348. {
  349. $q1=1+$t;
  350. $q2=2+$t;
  351. $q3=3+$t;
  352. $q4=4+$t;
  353. $q5=5+$t;
  354. $q6=6+$t;
  355. $q7=7+$t;
  356. if($q2>17)
  357. $q2=0;
  358. if($q3>22)
  359. $q3=0;
  360. if($q4>22)
  361. $q4=0;
  362. if($q5>22)
  363. $q5=0;
  364. if($q6>22)
  365. $q6=0;
  366. if($q7>22)
  367. $q7=0;
  368. czy_wygral($liczba[$q1],$liczba[$q2],$liczba[$q3],$liczba[$q4],$liczba[$q5],$liczba[$q6],$liczba[$q7]);
  369. $t=$t+6;
  370. }
  371.  
  372.  
  373. ?>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Wcale nie twierdzę, że w PHP magicznie pojawiła się wielowątkowość. Przyjrzyj się uważnie, jak autor chce realizować obliczenia:

mamy liczby a, b, c, d, e, f

a
a+b
a+b+c
a+b+c+d
a+b+c+d+e
a+b+c+d+e+f

Jeśli w którymkolwiek miejscu osiągniemy wielokrotność 1000 lub przekroczymy 10 000, to zaczynamy ponownie:

b
b+c
b+c+d
b+c+d+e
b+c+d+e+f

Warunek ten sam, przeskakujemy dalej:

c
c+d
c+d+e
c+d+e+f

itd.

Autor nic nie wspomniał, że obliczenia muszą być realizowane dokładnie w takiej kolejności. Więcej, napisał, że sumy typu "b+d+f" mogą wystąpić EWENTUALNIE, a ponieważ dodatkowo oznaczył post jako "Pomógł", wnioskuję, że dobrze go zrozumiałem i postuluję, że można je realizować w taki sposób:

Iteracja 1 (każdy wiersz oznacza pamiętaną sumę):

a

Iteracja 2:
a+b
b

Iteracja 3:

a+b+c
b+c
c

Iteracja 4:

a+b+c+d
b+c+d
c+d
d

itd.

Jeśli podczas sumowania okaże się, że osiągnęliśmy wielokrotność 1000 lub przekroczyliśmy 10000, to taką sumę wywalamy z dalszych obliczeń. Przypuśćmy, że w iteracji 4 suma b+c+d dała nam 3000. Wtedy wyświetlamy "Wygrałeś" i usuwamy ją, dzięki czemu w iteracji 5 mamy:

a+b+c+d+e
c+d+e
d+e
e

I to właśnie robi zaproponowany przeze mnie kod - twierdzę, że poprawnie wyłapie on każdą sumę "n" kolejnych liczb, która daje wielokrotność 1000 mniejszą, niż 10000, czyli to, czego chce autor.

PS. Guzik mnie obchodzi, czy to jest jakieś AminoLotto czy inny bzdet (IMG:style_emoticons/default/smile.gif) . Nie oglądam telewizji, nie kupuję Amino, autor chciał sumowanie "n" kolejnych liczb i dostał takie sumowanie (IMG:style_emoticons/default/smile.gif) .

Ten post edytował Zyx 30.11.2009, 22:13:49
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 18:56