Циклы (игра "Угадайка"+for)

Циклы (игра "Угадайка")

 

  1. Программа должна считать количество попыток, которое потребовалось пользователю, чтобы угадать число. И в конце сообщать, сколько было попыток.
  2. Программа должна загадывать число не из отрезка [1;10], а целое число из отрезка от [10;10], исключая ноль. При этом, постарайтесь, чтобы распределение случайных чисел генерируемых программой было равномерных (т. е. в случае выпадения нуля его нельзя просто заменить на какое-то другое число, например, на 1, ведь тогда 1 будет выпадать с вдвое большей вероятностью, чем остальные числа).
  3. Программа должна подсказывать пользователю, что он ошибся в знаке, если программа загадала положительное число, а пользователь ввёл отрицательное. И наоборот
import java.util.Scanner;
public class one {
public static void main(String[] args) {
// prog — число заданное программой
// user — число введённое пользователем
String znak;
int prog,user,i;
// Генерируем случайное целое число от 1 до 10
do {
prog = (int)(Math.random()*20 - 10);
} while(prog == 0);
System.out.println("Programma zagadala chislo ");
i = 0;
user = 0;
do {
i++;
System.out.print("\nVvedite svoje chislo: ");
Scanner input = new Scanner(System.in);
if(input.hasNextInt()) {
user = input.nextInt();
if(user == prog) {
System.out.println("Vi ugadali!!! Chislo popitok - "+i);
} else {
if (user <= 10 && user >= -10 && user != 0) {
System.out.println("Vi ne ugadali:");
if(user>0&&prog<0) {
System.out.println("=> Podskazka: Vvedite otritsateljnoje chislo");
} else if(user<0&&prog>0) {
System.out.println("=> Podskazka: Vvedite polojitelnoje chislo");
}
if(prog < user) {
System.out.println("=> Podskazka: Vozjmite chislo menjshe");
} else {
System.out.println("=> Podskazka: Vozjmite chislo bolshe");
}
} else {
System.out.println("Vi vveli nepravilnoje chislo");
}
}
} else {
System.out.println("Vi vveli ne to chislo ili bukvy");
}
} while(user != prog);
System.out.println("Do svidanja!");
}
}

Циклы (for)

1. Задание

Создайте программу, выводящую на экран все четырёхзначные числа последовательности 1000 1003 1006 1009 1012 1015 ….

public class one {
public static void main(String[] args) {
for(int i=1000; i<=10000; i = i+3) {
System.out.print(i+" ");
}
}
}

2. Задание

Создайте программу, выводящую на экран первые 55 элементов последовательности 1 3 5 7 9 11 13 15 17 ….

public class two {
public static void main(String[] args) {
for(int i=0, a=1; i<55; a = a+2, i++) {
System.out.print(a+" ");
}
}
}

3. Задание

Создайте программу, выводящую на экран все неотрицательные элементы последовательности 90 85 80 75 70 65 60 ….

public class three {
public static void main(String[] args) {
for(int i=90; i>=0; i=i-5) {
System.out.print(i+" ");
}
}
}

4. Задание

Создайте программу, выводящую на экран первые 20 элементов последовательности 2 4 8 16 32 64 128 ….

public class four {
public static void main(String[] args) {
for(int i = 0, a = 2; i<=20; a = a*2, i++) {
System.out.print(a+" ");
}
}
}

5. Задание

Выведите на экран все члены последовательности 2an-1–1, где a1=2, которые меньше 10000.

public class five {
public static void main(String[] args) {
for(int a = 2; a<=10000; a=a*2-1) {
System.out.print(a+" ");
}
}
}

6. Задание

Выведите на экран все двузначные члены последовательности 2an-1+200, где a1= –166.

public class six {
public static void main(String[] args) {
for(int a = -166; a<100; a=a*2+200) {
if(a/100==0) {
System.out.print(a+" ");
}
}
}
}

7. Задание

Создайте программу, вычисляющую факториал натурального числа n, которое пользователь введёт с клавиатуры.

import java.util.Scanner;
public class seven {
public static void main(String[] args) {
int n,f;
f = 1;
Scanner sc = new Scanner(System.in);
System.out.print("Vvedite chislo, kotoroje nado vozvesti v faktorial: ");
if(sc.hasNextInt()) {
n = sc.nextInt();
for(int i=1; i<=n; i++) {
f = f*i;
}
System.out.println(n+"! = "+f);
} else {
System.out.println("Vi vveli chto-to ne to");
}
}
}

8. Задание

Выведите на экран все положительные делители натурального числа, введённого пользователем с клавиатуры.

import java.util.Scanner;
public class eight {
public static void main(String[] args) {
int n;
Scanner sc = new Scanner(System.in);
System.out.print("Vvedite chislo: ");
if(sc.hasNextInt()) {
n = sc.nextInt();
for(int i=1;i<=n;i++) {
if(n%i==0) {
System.out.print(i+" ");
}
}
} else {
System.out.println("Vi vveli ne to chislo");
}
}
}

9. Задание

Проверьте, является ли введённое пользователем с клавиатуры натуральное число — простым. Постарайтесь не выполнять лишних действий (например, после того, как вы нашли хотя бы один нетривиальный делитель уже ясно, что число составное и проверку продолжать не нужно). Также учтите, что наименьший делитель натурального числа n, если он вообще имеется, обязательно располагается в отрезке [2; √n].

import java.util.Scanner;
public class nine {
public static void main(String[] args) {
int n,k;
boolean b;
b = false;
Scanner sc = new Scanner(System.in);
System.out.print("Vvedite chislo: ");
if(sc.hasNextInt()) {
n = sc.nextInt();
for(int i=1; i<=Math.sqrt(n); i++) {
if(n%i==0&&i>1) {
b = true;
break;
}
}
if(b) {
System.out.println("Chislo "+n+" ne prostoje, tak kak u nego est otlichnij ot nulja delitel ");
} else {
System.out.println("Chislo "+n+" prostoje, tak kak delitsa toljko na edinitsu i na samo sebja");
}
} else {
System.out.println("Vi vveli nepraviljnoje chislo");
}
}
}

10. Задание

Создайте программу, выводящую на экран 12 первых элементов последовательности 2an-2–2, где a1=3 и a2=2.

public class ten {
public static void main(String[] args) {
for(int i=1, a1 = 3, a2 = 2; i<=12; i++) {
if(i%2==0) {
a2 = a2*2-2;
System.out.print(a1+" ");
} else {
a1 = a1*2-2;
System.out.print(a2+" ");
}
}
}
}

11. Задание

Выведите на экран первые 11 членов последовательности Фибоначчи. Напоминаем, что первый и второй члены последовательности равны единицам, а каждый следующий — сумме двух предыдущих.

public class eleven {
public static void main(String[] args) {
int n1 = 1,n2 = 1,s = 0;
for(int i = 0; i<11; i++){
if(i%2==0) {
n1 = n1+n2;
System.out.print(n1+" ");
} else {
n2 = n1+n2;
System.out.print(n2+" ");
}
}
}
}

12. Задание

Для введённого пользователем с клавиатуры натурального числа посчитайте сумму всех его цифр (заранее не известно сколько цифр будет в числе).

import java.util.Scanner;
public class twelve {
public static void main(String[] args) {
int n,s,i,b;
Scanner sc = new Scanner(System.in);
System.out.print("Vvedite chislo: ");
if(sc.hasNextInt()) {
n = sc.nextInt();
b = n;
s = 0;
i = 0;
while(n!=0) {
s = s+n%10;
n = n/10;
i++;
}
System.out.println("Summa sifr chisla "+b+" = "+s+", a kolichestvo sifr v nem: "+i);
} else {
System.out.println("Vi vveli nepravilnoje chislo");
}
}
}

13. Задание

В городе N проезд в трамвае осуществляется по бумажным отрывным билетам. Каждую неделю трамвайное депо заказывает в местной типографии рулон билетов с номерами от 000001 до 999999. «Счастливым» считается билетик у которого сумма первых трёх цифр номера равна сумме последних трёх цифр, как, например, в билетах с номерами 003102 или 567576. Трамвайное депо решило подарить сувенир обладателю каждого счастливого билета и теперь раздумывает, как много сувениров потребуется. С помощью программы подсчитайте сколько счастливых билетов в одном рулоне?

public class thirteen {
public static void main(String[] args) {
int d,o,m,j,s1,s2,f;//ot 1000 do 999999
j = 0;
for(int i=3000; i<=999999; i++) {
m = i/1000;
s1 = 0;
s2 = 0;
while(m!=0) {
s1 = s1+m%10;
m = m/10;
}
m = i%1000;
while(m!=0) {
s2 = s2+m%10;
m = m/10;
}
if(s1==s2) {
j++;
}
}
System.out.println("Trebujetsa kolihestvo suvenirov: "+j);
}
}

14. Задание

В городе N есть большой склад на котором существует 50000 различных полок. Для удобства работников руководство склада решило заказать для каждой полки табличку с номером от 00001 до 50000 в местной типографии, но когда таблички напечатали, оказалось что печатный станок из-за неисправности не печатал цифру 2, поэтому все таблички, в номерах которых содержалась одна или более двойка (например, 00002 или 20202) — надо перепечатывать. Напишите программу, которая подсчитает сколько всего таких ошибочных табличек оказалось в бракованной партии.

public class fourteen {
public static void main(String[] args) {
int f,j,k;
j = 0;
for(int i=1; i<=50000; i++) {
k = i;
f = 0;
while(k!=0) {
if(k%10==2) {
f = 1;
break;
}
k = k/10;
}
if(f == 0) {
j++;
}
}
System.out.println("Oshibochnih tablichek: "+j);
}
}

15. Задание

Электронные часы показывают время в формате от 00:00 до 23:59. Подсчитать сколько раз за сутки случается так, что слева от двоеточия показывается симметричная комбинация для той, что справа от двоеточия (например, 02:20, 11:11 или 15:51).

public class fiveteen {
public static void main(String[] args) {
int hours,minutes,h1,h2,m1,m2,j;
hours = 0;
minutes = 0;
j = 0;
while(hours<24) {
h1 = hours/10;
h2 = hours%10;
m1 = minutes/10;
m2 = minutes%10;
if(h1==m1&&h2==m2) {
j++;
}
minutes++;
if(minutes==60) {
minutes = 0;
hours++;
}
}
System.out.println("Simmetrichnih combinatsij: "+j);
}
}

16. Задание

В американской армии считается несчастливым число 13, а в японской — 4. Перед международными учениями штаб российской армии решил исключить номера боевой техники, содержащие числа 4 или 13 (например, 40123, 13313, 12345 или 13040), чтобы не смущать иностранных коллег. Если в распоряжении армии имеется 100 тыс. единиц боевой техники и каждая боевая машина имеет номер от 00001 до 99999, то сколько всего номеров придётся исключить?

public class sixteen {
public static void main(String[] args) {
int n,j;
j = 0;
for(int i=1; i<100000; i++){
n = i;
while(n!=0){
if(n%10==4||n%100+10*n%10==13) {
j++;
break;
}
n = n/10;
}
}
System.out.println("Iscluchit nomerov: "+j);
}
}
Free Web Hosting