Я пытаюсь создать программу C++, которая при вводе двух чисел (num1, combinationNum) находит два числа, которые умножаются вместе равными num1, но складываются вместе в равную комбинациюNum. В настоящее время он работает для целых положительных чисел, но не отрицателен. Как заставить работать с отрицательными целыми числами? Кроме того, если уравнение не разрешимо, я бы хотел, чтобы он печатал какую-то ошибку. Благодаря! Код:Мой код C++ для факторинга не работает
//
// main.cpp
// Factor
//
// Created by Dani Smith on 2/13/14.
// Copyright (c) 2014 Dani Smith Productions. All rights reserved.
//
#include <iostream>
#include <cmath>
using namespace std;
void factors(int num, int comNum){
int a, b;
cout<<"The factors are ";
bool isPrime = true;
int root = (int)sqrt((double)num);
for(int i = 2; i <= root; i++){
if(num % i == 0){
isPrime = false;
//cout<<i<<",";
for(int x = 0; x<3; x++){
if(x==1){
a = i;
}
else if(x == 2){
b = i;
}
if(a + b == comNum){
cout << a << ", and " << b << ".";
}
}
}
}
//----------------------------------------
if(isPrime)cout<<"1 ";
cout<<endl;
}
int main(int argc, const char * argv[])
{
int num1 = 0, num2 = 0, multiple = 0, combinationNum = 0, output1 = 0, output2 = 0;
cout << "What number do you want to factor?\n";
cin >> num1;
cout << "What do you want them to add to?\n";
cin >> combinationNum;
factors(num1, combinationNum);
return 0;
}
Если она работает, прежде чем, почему бы не поставить его обратно в состояние, в котором он работал? Что именно об этом свидетельствует о том, что оно «не работает»? Какой вклад вы дадите, когда вывод неверен? – 2rs2ts
'Это работало раньше, но я слишком много перепутал с этим» - вот почему программисты используют контроль источника. – crashmstr
Извините, но в чем проблема? И если это сработало до того, вы знаете, как заставить его работать, так что просто продолжайте и делайте это. Мы не «черт возьми, я потерял свой код, я получу Интернет, чтобы воссоздать его для меня, потому что я не могу потрудиться за свои ошибки»! –