Форум программистов, компьютерный форум CyberForum.ru

Неверно считает - C++

Восстановить пароль Регистрация
 
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 21:25     Неверно считает #1
множество всех чисел вида (2^(k)+3^(k)).
вот код:
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <memory>
 
int main()
{
int N;
cout<<"N="; cin>>N;
int n, k;
n=log(N);
FILE * f;
f = fopen("answer.txt","r+");
int* arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = (pow(2,(k)) + pow(3,(k))); //множество всех чисел (2^(k)+3^(k))
{
if( arr[i] <= N) //сравнение с введенным числом
{
cout << arr[i] << " ";
fprintf(f, "%d", arr[i]); //запись результата
}
}
delete[] arr;
fclose(f);
return 0;
}
 Комментарий модератора 
1. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
2. Для студенческих задач по C++ предназначен раздел http://www.cyberforum.ru/cpp-beginners/.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
12.05.2011, 21:41     Неверно считает #2
ну и где ошибка? что пишет компилятор?
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 21:42  [ТС]     Неверно считает #3
неправильно считает
возможно ошибка в массиве,но замучился искать
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
12.05.2011, 21:46     Неверно считает #4
k объявлена, используется, но не инициализирована
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 21:46  [ТС]     Неверно считает #5
а можешь подправить код?
плз
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
12.05.2011, 21:49     Неверно считает #6
C++
1
arr[i] = (pow(2,(i)) + pow(3,(i)));
Видимо, так

Добавлено через 1 минуту
C++
1
2
3
for (int i = 0; i < n; i++)
{
arr[i] = (pow(2,(i)) + pow(3,(i)));
И скобку до, а не после
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
12.05.2011, 21:58     Неверно считает #7
Добрый вечер! G++/Code::Blocks.
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
#include <iostream>
#include <stdio.h>
#include <math.h>
 
using namespace std;
int main()
{
int N;
cout<<"N=";
cin>>N;
 
int n1=log(N);
 
FILE * f;
f = fopen("answer.txt","w");
int* arr = new int[n1];
 
for (int i = 0; i < n1; i++)
{
    arr[i] = pow(2,i) + pow(3,i); //множество всех чисел (2^(k)+3^(k))
    if( arr[i] <= N) { //сравнение с введенным числом
        cout << arr[i] << " ";
        fprintf(f, "%3d", arr[i]); //запись результата
    }
}
delete[] arr;
fclose(f);
 
return 0;
}
Однако алгоритм можно улучшить, так как 2^n=2*2^(n-1). Тогда будет быстрей и без <math.h>
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
12.05.2011, 22:01     Неверно считает #8
а чему равно "k" ?
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 22:02  [ТС]     Неверно считает #9
степень???
ничему просто посчитать множество всех таких чисел
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
12.05.2011, 22:09     Неверно считает #10
(pow(2,(k)) + pow(3,(k)))
я могу ошибаться но для того чтобы использовать функцию pow ей нунжно передать два параметра
double x; возводимое число
double y; степень числа x
в данном случае степень числа у вас неопределенна....
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 22:14  [ТС]     Неверно считает #11
спасибо.тока он когда N=100 выводит 2,5,13,35, а должно быть еще 97

Добавлено через 4 минуты
все я понял просто надо было исправить:
int n1=log(N)+2;


lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
12.05.2011, 22:14     Неверно считает #12
2=2^0+3^0
5=2^1+3^1
13=2^2+3^2...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2011, 13:56     Неверно считает
Еще ссылки по теме:

Неверно отображатся содержимое копии C++
Программа написана, но работает неверно C++
C++ Неверно считается логарифм

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

Или воспользуйтесь поиском по форуму:
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
13.05.2011, 13:56  [ТС]     Неверно считает #13
[QUOTE=lamed;1642876]Добрый вечер! G++/Code::Blocks.
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
#include <iostream>
#include <stdio.h>
#include <math.h>
 
using namespace std;
int main()
{
int N;
cout<<"N=";
cin>>N;
 
int n1=log(N)+2; //для подсчета последнего числа
 
FILE * f;
f = fopen("answer.txt","w");
int* arr = new int[n1];
 
for (int i = 0; i < n1; i++)
{
    arr[i] = pow(2,i) + pow(3,i); //множество всех чисел (2^(k)+3^(k))
    if( arr[i] <= N) { //сравнение с введенным числом
        cout << arr[i] << " ";
        fprintf(f, "%3d", arr[i]); //запись результата
    }
}
delete[] arr;
fclose(f);
 
return 0;
}
Yandex
Объявления
13.05.2011, 13:56     Неверно считает
Ответ Создать тему
Опции темы

Текущее время: 18:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru