Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
#1

Есть ли целое число - C++

16.11.2009, 23:05. Просмотров 1089. Ответов 14
Метки нет (Все метки)

помогите плз
Есть ли целое число, которое при сложении с обратным по записи ни на каком шаге не дает симметричную сумму (предусмотреть печать результата для любого веденного числа). Найти минимальное и максимальное число операций
ну т.е. например:
139
+ 931
-------
1070
+0701
--------
1771
ну я так понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2009, 23:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть ли целое число (C++):

Дано целое число N (> 0). Найти квадрат данного числа, используя для его вычисления следующую формулу: - C++
Помогите пожалуйста, как решить это всё, как расписать, я новичок в С++, как это всё делается? Вот задание: Дано целое число N (> 0)....

Cчитать строку из ListBox как целое число и как вещественное число - C++ Builder
какие команды позволяют считать строку из ListBox как целое число и как вещественное число Ещё одна тема с бессмысленным названием,...

Сохранить целое число в файл *.txt - C++ Builder
Есть некоторое число, записанное в Memo1 (Целое число) Необходимо сохранить число из Memo1 в файл х.txt Добавлено через 52 минуты ...

определить является ли шестизначное целое число счастливым - C++ Builder
Пожалуйста помогите. Нужно определить является ли шестизначное целое число счастливым (число называется счастливым если сумма первых трех...

Перевести целое число из десятичной системы счисления в двоичную - C++ Builder
16. Перевести целое число из десятичной системы счисления в двоичную, используя алгоритм деления на 2. Если можно полный алгоритм...

Найти наименьшее целое положительное число К, квадрат которого превосходит N - C++ Builder
дано целое число N>0. Найти наименьшее целое положительное число К, квадрат которого превосходит N:K*K>N.Функцию извлечения квадратного...

14
-=ЮрА=-
Заблокирован
Автор FAQ
17.11.2009, 13:38 #2
Ни на каком шаге - проверка данным способом попахивает бесконечным циклом!Притом твоё число 139 уже на 2-м шаге дало как раз симметричную сумму...Ну а эта строчка вообще убивает :
Найти минимальное и максимальное число операций... Максимальное число операций - а чем бесконечность не подойдёт???
Если можно уточни задание!Возьмусь самоотверженно его сделать)))
1
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
17.11.2009, 22:29  [ТС] #3
ну мне надо чтобы для любого числа давало 17......71и указать минимум и максимум число операций
а как это сделать я вообще в беспонятках((((((((((((

Добавлено через 16 минут
ну сумма т.е. давала 17...........71
0
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
29.11.2009, 18:15  [ТС] #4
помогите плз
лаба уже гарит(
0
green5
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 3
29.11.2009, 23:28 #5
Не ++, a d:

Чето не все числа сходятся может не дождался
196 например
C++
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
import std.stdio;
import std.c.process;
 
string reverse(string a)
{
  char[] t;
  t.length=a.length;
  for(int i=0;i<a.length;i++)
  {
    t[i]=a[a.length-1-i];
  }
  return t;
}
 
int max2(int a,int b)
{
  return a>b?a:b;
}
 
string sum10(char[] a,char[] b)
{
  int n=max2(a.length,b.length);
  string t;
  t.length=n;
  bool o=false;
  int i=a.length-1;
  int j=b.length-1;
  int k=0;
  for(;i>=0||j>=0;--i,--j,++k)
  {
    int x=i>=0?a[i]-'0':0;
    int y=j>=0?b[j]-'0':0;
    x+=y+o;
    t[k]='0'+x%10;
    o=x>=10;
  }
  if(o) { t.length=n+1; t[n]='1'; }
  return reverse(t);
}  
 
string itoa(int x)
{
  string t;
  for(;x;)
  {
    t.length=t.length+1;
    t[t.length-1]=(x%10)+'0';
    x/=10;
  }
  if(t.length==0) t="0";
  return reverse(t);
}
 
int rcount(string a)
{
  int i=0;
  for(;i<100000;i++)
  {
    string t=sum10(a,reverse(a));
    if(reverse(t)==t) return i;
    a=t;****
  }
  return -1;
}
 
void main(string[] args)
{
  if(args.length<2)
  {
    for(int i=0;;i++)
    {
      int n=rcount(itoa(i));
      if(n==-1||n>1000) printf("%d: %d\n",i,n);
    }
  }
  string a=args[1];
  string b=reverse(a);
  for(int i=0;;i++)
  {
    string t=sum10(a,b);
    //printf("%d: a=%.*s b=%.*s t=%.*s\n",i,a.length,a.ptr,b.length,b.ptr,t.length,t.ptr);
    if(t.length<20) printf("%d: %.*s\n",i,t.length,t.ptr); else printf("%d: %d\n",i,t.length);
    a=t;
    b=reverse(a);
    if(a==b) break;     
  }
}
Добавлено через 6 минут
Не ++, a d:

Чето не все числа сходятся может не дождался
196 например

Код
import std.stdio;
import std.c.process;

string reverse(string a)
{
  char[] t;
  t.length=a.length;
  for(int i=0;i<a.length;i++)
  {
    t[i]=a[a.length-1-i];
  }
  return t;
}

int max2(int a,int b)
{
  return a>b?a:b;
}

string sum10(char[] a,char[] b)
{
  int n=max2(a.length,b.length);
  string t;
  t.length=n;
  bool o=false;
  int i=a.length-1;
  int j=b.length-1;
  int k=0;
  for(;i>=0||j>=0;--i,--j,++k)
  {
    int x=i>=0?a[i]-'0':0;
    int y=j>=0?b[j]-'0':0;
    x+=y+o;
    t[k]='0'+x%10;
    o=x>=10;
  }
  if(o) { t.length=n+1; t[n]='1'; }
  return reverse(t);
}  

string itoa(int x)
{
  string t;
  for(;x;)
  {
    t.length=t.length+1;
    t[t.length-1]=(x%10)+'0';
    x/=10;
  }
  if(t.length==0) t="0";
  return reverse(t);
}

int rcount(string a)
{
  int i=0;
  for(;i<100000;i++)
  {
    string t=sum10(a,reverse(a));
    if(reverse(t)==t) return i;
    a=t;    
  }
  return -1;
}

void main(string[] args)
{
  if(args.length<2)
  {
    for(int i=0;;i++)
    {
      int n=rcount(itoa(i));
      if(n==-1||n>1000) printf("%d: %d\n",i,n);
    }
  }
  string a=args[1];
  string b=reverse(a);
  for(int i=0;;i++)
  {
    string t=sum10(a,b);
    //printf("%d: a=%.*s b=%.*s t=%.*s\n",i,a.length,a.ptr,b.length,b.ptr,t.length,t.ptr);
    if(t.length<20) printf("%d: %.*s\n",i,t.length,t.ptr); else printf("%d: %d\n",i,t.length);
    a=t;
    b=reverse(a);
    if(a==b) break;     
  }
}
1
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
30.11.2009, 18:22  [ТС] #6
спс)
БОЛЬШОЕ)

а спс не такое уж большое тут ошибок тьма и прога у мя не работает
пытался переделать не вышло так как для меня она очень сложно записана
мне когда ее давали сказали что по размеру она буит небольшой правда я не представляю насколько
помогите пожалуйста
0
green5
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 3
15.12.2009, 19:56 #7
Hi, уж и позабыл.
Что за ошибки? мелкие там есть
0
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
16.12.2009, 00:10  [ТС] #8
ну просто очень громоздкая прога выходит во первых
во вторых непонятная
мне на этом сайте помогли уже не раз пускай и не так как преподша требует но коекак переделывал а твое вообще не выходит ничего
и еще я это вообще первый раз увидел:
import std.stdio;
import std.c.process;
ну первое еще похоже на #include <stdio.h>
а второе я вообще без понятия
+ она сказала что задача по количеству строчек выходит раза в 4 меньше
0
green5
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 3
16.12.2009, 11:04 #9
1 Прогу запустил? (скачай gdc)
2 Если надо на с++, то я пасс
3 Если можно на D то размер уменьшу
0
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
16.12.2009, 15:40  [ТС] #10
Цитата Сообщение от green5 Посмотреть сообщение
1 Прогу запустил? (скачай gdc)
2 Если надо на с++, то я пасс
3 Если можно на D то размер уменьшу
смешно ты видел тему где создана?
мне и надо на с++
0
MotherBoard
Путешественница
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,843
16.12.2009, 16:24 #11
GrafDpakyla, Не маюгаться! Пожалуйста!
0
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
16.12.2009, 20:22  [ТС] #12
извеняюсь
0
GrafDpakyla
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 27
17.12.2009, 22:05  [ТС] #13
помогите плз!
0
Том Ардер
Модератор
Эксперт по математике/физике
3776 / 2389 / 304
Регистрация: 15.06.2009
Сообщений: 4,310
18.12.2009, 15:04 #14
Решение в аттаче. Задача не слишком простая, без длинной арифметики не обойтись. Попробуй предложить своему преподавателю проверить число 899. Результат - 12-ти значный. А 196 вообще не завершается, я проверил до 10000 знаков. В какой-то старой книге мне эта задача и это 196 попадались, но не помню где, и найти не удалось.
0
Вложения
Тип файла: zip test.zip (1.1 Кб, 12 просмотров)
Том Ардер
Модератор
Эксперт по математике/физике
3776 / 2389 / 304
Регистрация: 15.06.2009
Сообщений: 4,310
18.12.2009, 16:43 #15
Отсюда надо было начинать!
http://en.wikipedia.org/wiki/196_%28number%29
0
18.12.2009, 16:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2009, 16:43
Привет! Вот еще темы с ответами:

Проверить истинность высказывания: "Данное целое число является четным трехзначным числом" - C++ Builder
не знаю как найти решение

Логической переменной p присвоить значение true, если целое n(n>1) простое число, и значение false иначе - C++ Builder
Помогите. Логической переменной p присвоить значение true, если целое n(n&gt;1) простое число, и значение false иначе

Как разделить целое число Int64 на целое 1024 и получить double с 2 знаками после запятой - Visual C++
Int64 chislo=1234567890; double chislo2=chislo/1024; label1-&gt;Text=Convert::ToString(Math::Round(chislo2,2)) chislo2 всегда...

Проверить, есть ли в строке из символов целое число - C++
Как проверить, есть ли в строке из символов целое число?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru