class Uppgift1 {
public static int factorial(int n) {
// n antas vara positiv
int res = 1;
for (; n > 1; n--) {
res *= n;
}
return res;
}
public static void main(String[] args) {
int k = Integer.parseInt(args[0]);
for (int i = 1; i <= k; i++) {
System.out.println(factorial(i));
}
}
}
class Uppgift2 {
public static boolean isPrime(int n) {
// n antas vara positiv
for (int i = 2; i < n; i++) {
if (n % i == 0) return false; // n är delbar med i
}
return true;
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
if (isPrime(n)) {
System.out.println("primtal");
} else {
System.out.println("ej primtal");
}
}
}
class Uppgift3 {
public static double maxDoubles(double[] a) {
double max = a[0]; // a antas vara icke-tom
for (int i = 1; i < a.length; i++) {
if (a[i] > max) max = a[i];
}
return max;
}
public static boolean allDoublesEqual(double[] a) {
double x = a[0]; // a antas vara icke-tom
for (int i = 1; i < a.length; i++) {
if (a[i] != x) return false;
}
return true;
}
public static void main(String[] args) {
double[] argnums = new double[args.length];
for (int i = 0; i < args.length; i++) {
argnums[i] = Double.parseDouble(args[i]);
}
if (allDoublesEqual(argnums)) {
System.out.println("alla tal lika");
} else {
System.out.println("maxvärde: " + maxDoubles(argnums));
}
}
}
public static int[] reverse(int[] a) {
int[] b = new int[a.length];
for (int i = 0; i < a.length; i++) {
b[a.length - 1 - i] = a[i];
}
return b;
}
class Uppgift5 {
public static void main(String[] args) throws Exception {
String str = new String(java.nio.file.Files.readAllBytes(java.nio.file.Paths.get(args[0])));
String[] strs = str.split(",");
int[] nums = new int[strs.length];
for (int i = 0; i < strs.length; i++) {
nums[i] = Integer.parseInt(strs[i]);
}
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i + 1] < nums[i]) {
System.out.println(nums[i + 1] + " är mindre än " + nums[i]);
return;
}
}
System.out.println("sekvensen är växande");
}
}
Programmet skriver ut:
9 7 3
Metoden f
byter plats på två element i en array, i det fallet elementen med index 0 och 2 i a
.
class Uppgift7 {
public static int fibonacci(int k) {
// Denna direkta implementering av definitionen
// är alldeles för långsam.
if (k < 3) {
return 1;
} else { // k >= 3
return fibonacci(k - 1) + fibonacci(k - 2);
// rekursiva anrop
}
}
public static int fibonacci2(int k) {
// Räkna istället ut alla tal upp till fk
// från första till sista genom att hela
// tiden hålla reda på två efterföljande
// värden.
int i = 0; // föregående värde
int j = 1; // aktuellt värde
for (; k > 1; k--) {
int tmp = j;
j = i + j;
i = tmp;
}
return j;
}
public static void main(String[] args) {
int k = Integer.parseInt(args[0]);
System.out.println(fibonacci2(k));
}
}