is115-php/modul3/index3_5.php

89 lines
2.4 KiB
PHP

<?php include '../common.php'; ?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="../index.css">
<style>
td {
height: 90px;
width: 90px;
}
tr:nth-child(2n) td:nth-child(2n), tr:nth-child(2n+1) td:nth-child(2n+1) {
background-color: #666;
color: #fff;
}
</style>
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Sjakk og hvete</h2>
<?php
function numToStr($num): string {
$ret = [];
// Definerer hvilke tall vi skal dele opp på
$tallTekster[1_000_000_000_000_000_000] = "trillion";
$tallTekster[1_000_000_000_000_000] = "billiard";
$tallTekster[1_000_000_000_000] = "billion";
$tallTekster[1_000_000_000] = "milliard";
$tallTekster[1_000_000] = "million";
$tallTekster[1_000] = "tusen";
$tallTekster[100] = "hundre";
// Løkke gjennom de tallene
foreach ($tallTekster as $desimal => $navn){
if(($tall = floor($num/$desimal)) > 0){
$tekst = $navn;
// Gramatisk riktig når det kun er én enhet (unntak tusen og hundre)
if($tall != 1 && $navn != "tusen" && $navn != "hundre" && $navn != ""){ $tekst .= "er"; }
$ret[] = $tall." ".$tekst;
// Trekker fra tallene i $num, så det som står igjen er neste deling
$num = $num-($tall*$desimal);
}
}
// Legger på siste de siste tallene etter en "og"
if($num > 0){
$ret[] = "og ".$num;
}
return str_replace(', og', ' og', implode(', ', $ret));
}
?>
<table border="1">
<tbody>
<tr>
<?php
$i = 1;
echo "<td>$i</td>";
for($c = 2; $c <= 64; $c++){
$i = $i + $i;
if($i > 1_000_000_000){
echo "<td>".numToStr($i)."</td>";
}
else {
echo "<td>$i</td>";
}
// Layout - 8 kolonner
if($c % 8 == 0){
echo "</tr>\n <tr>";
}
}
?>
</tr>
</tbody>
</table>
</div>
</body>
</html>