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

Перевод кода с Java - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача. Найти траекторию собаки за первые 15 секунд погони http://www.cyberforum.ru/cpp-beginners/thread918868.html
В точке P находится собака, а в точке Q - кошка. Расстояние между ними равно 100 м. Кошка бежит вдоль прямой S с постоянной скоростью 5 м/сек. Собака бежит в направлении кошки со скоростью 10 м/сек. Найти траекторию собаки за первые 15 секунд погони. Указание: заменить кривую ломаной: за первую секунду кошка пробегает отрезок QQ` а собака PP`. за вторую соответственно Q`Q`` и P`P``. в начале...
C++ Указатель на строку: как выводить не всю строку целиком, а конкретную букву Есть программка: #include<iostream> using namespace std; void fn_str1(int i,string str1,char *p) { p=&str1; for(i=0;i<str1.length();++i) { p=&str1; http://www.cyberforum.ru/cpp-beginners/thread918867.html
C++ Чем с++ будет полезен?
у меня такой интересный вопрос... я учу с++ от скуки и интереса, но мне бы хотелось знать - может ли он пригодиться в жизни?
Ввести char * в консоль C++
Долбанный char * не получается ввести не cin ни gets ни getsline и т.д. Не могу понять как его ввести. Есть код: char *tbLEN = "TESTVASYA AND TWO TEXTZZ"; // Далее шифрование и другие действия... Надо сделать как то так: char *tbLEN = (ввод с клавы в консоль с учетом пробелов!); // Далее шифрование и другие действия... Help!
C++ Что-то не то с string http://www.cyberforum.ru/cpp-beginners/thread918837.html
Выполнял одну задачку. Суть задачи в том чтоб определять является ли введенная строка полиндромом. Рекомендовали использовать методы string и STL, но это не являлось требованием. В общем вроде ничего сложного, сначала сделал первую версию, и она работала, потом начал допиливать, и начала появляться ошибка outOfRange, попробовал вернуть старый робочий вариант, но ошибка не пропала... Ошибку...
C++ Дайте совет по написанному парсеру Написал небольшой парсер для BSDL файлов, но получилось как-то функционально что ли, я не смог выделить абстракции, к тому же приходится создавать объект парсера, затем вызвать функцию и передавать ему имя файла и объект для того что он разобрал(jtagDevice), мне кажется можно проще или более гибко но не могу придумать как, плюс зачемто унаследовал его от QObject что было лишним это я уберу, с... подробнее

Показать сообщение отдельно
Севак
любитель покушать
 Аватар для Севак
674 / 625 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
06.07.2013, 20:46     Перевод кода с Java
Здравствуйте! Есть код на java, который работает недостаточно быстро, для его ускорения решил переписать его на c++, вот что вышло, помогите исправить реализацию на c++ или укажите на ошибки, буду благодарен!

Java
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
import java.math.BigInteger;
import java.util.Scanner;
 
public class Main {
    public static final BigInteger one = BigInteger.ONE;
    public static final BigInteger minusOne = BigInteger.valueOf(-1);
    public static final BigInteger two = BigInteger.valueOf(2);
    public static final BigInteger three = BigInteger.valueOf(3);
    public static final BigInteger mod = BigInteger.valueOf(1000000007);
 
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        System.out.println(G(n));
    }
 
    public static BigInteger G(int n) {
        if(n % 2 == 0) {
            return two.shiftLeft(n).add(one).divide(three).mod(mod).subtract(one);
        } else {
            return two.shiftLeft(n).add(minusOne).divide(three).mod(mod);
        }
    }
 
}
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
#include <iostream>
#include <stdint.h>
#include <math.h>
 
using namespace std;
 
int64_t G(int64_t n, int64_t mod) {
    if(n % 2 == 0) {
        return (((2 << n) + 1)/3) % mod - 1;
    } else {
        return (((2 << n) - 1)/3) % mod;
    }
}
 
 
int main() {
    int64_t n;
    int64_t mod = 1000000007;
 
    cin >> n;
    cout << G(n, mod);
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru