не могу понять, почему неправильно переводит
Недавно начал учить с++, хорошо знаю php, но хочу научиться геймдеву.
Есть задача Напишите программу, которая вводит двоичную запись целого числа х (от 0 до 30), и выводит это число на экран в десятичной системе счисления.
Я вроде реализовал на с++, но почему-то неправильно работает(введите 10, ответ должен быть 2, а у меня 1) Совсем запутался с с++ этим)) Заранее спасибо
#include<iostream>
#include <math.h>
using namespace std;
int main()
{
int num = 0, l = 0, t = 1, ch = 0, res = 0;
cout << "Введите число в двоичной системе:" << endl;
cin >> num; //вводим число с клавиатуры
l = to_string(num).length();
for (int i = 0; i < l; i++)
{
ch = ((num / t) % 10) * pow(i , 2);
res += ch;
t *= 10;
}
if (res > 0 && res < 30) //проверяем, находится ли заданного число в указанном интервале
{
cout << res;
}
else
{
cout << "Введите число от 0 до 30" << endl;
}
}
Ответы (1 шт):
Автор решения: Jeckerson
→ Ссылка
Просто нужно не i в вторую степень возводить, а наоборот 2 в iтую степень) Да, совсем не заметил. Спасибо огромное