Floyd's triangle: Difference between revisions
Content added Content deleted
(Added Java) |
|||
Line 110: | Line 110: | ||
Efficiency note: In a measurement of time used: in floyd 100, 80% the time here goes into the string manipulations -- sequential additions and multiplications are cheap. In floyd 1000 this jumps to 98% of the time. |
Efficiency note: In a measurement of time used: in floyd 100, 80% the time here goes into the string manipulations -- sequential additions and multiplications are cheap. In floyd 1000 this jumps to 98% of the time. |
||
=={{header|Java}}== |
|||
<lang java> |
|||
public class Floyd { |
|||
public static void main(String[] args){ |
|||
System.out.println("5 rows:"); |
|||
printTriangle(5); |
|||
System.out.println("14 rows:"); |
|||
printTriangle(14); |
|||
} |
|||
private static void printTriangle(int n){ |
|||
for(int rowNum = 1, printMe = 1, numsPrinted = 0; |
|||
rowNum <= n; printMe++){ |
|||
int cols = (int)Math.ceil(Math.log10(n*(n-1)/2 + numsPrinted + 2)); |
|||
System.out.printf("%"+cols+"d ", printMe); |
|||
if(++numsPrinted == rowNum){ |
|||
System.out.println(); |
|||
rowNum++; |
|||
numsPrinted = 0; |
|||
} |
|||
} |
|||
} |
|||
}</lang> |
|||
Output: |
|||
<pre>5 rows: |
|||
1 |
|||
2 3 |
|||
4 5 6 |
|||
7 8 9 10 |
|||
11 12 13 14 15 |
|||
14 rows: |
|||
1 |
|||
2 3 |
|||
4 5 6 |
|||
7 8 9 10 |
|||
11 12 13 14 15 |
|||
16 17 18 19 20 21 |
|||
22 23 24 25 26 27 28 |
|||
29 30 31 32 33 34 35 36 |
|||
37 38 39 40 41 42 43 44 45 |
|||
46 47 48 49 50 51 52 53 54 55 |
|||
56 57 58 59 60 61 62 63 64 65 66 |
|||
67 68 69 70 71 72 73 74 75 76 77 78 |
|||
79 80 81 82 83 84 85 86 87 88 89 90 91 |
|||
92 93 94 95 96 97 98 99 100 101 102 103 104 105 </pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |
||
<lang python>>>> def floyd(rowcount=5): |
<lang python>>>> def floyd(rowcount=5): |