질문 : 질문은 이렇게됩니다. 나는 N 개의 숫자를 가지고 있습니다. 1. X가 2의 배수이면 X를 2로 나눕니다. 2. X가 3의 배수이면 3으로 나눕니다. 3. 빼기 X. 1 ...이 코드는 동적 프로그래밍을 이용하여 수행하는 것을 의미 X = 0으로 만드는 작업의 최소 수를 찾기C++ : 3 가지 가능한 작업이 주어진 동적 프로그래밍
입력 : 라인 1 : N 라인 (2) : N 번호 어레이 X
출력 : 라인 1 : 작업의 수는 0으로 X1을 줄이기 위해 ... 라인 N : 작업의 수 그래서 난이 일에 대해 가지 방법 0
에 XN을 줄이기 위해?
코드 :
#include <bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
for (int i = 0; i < N; i++){
int A, count = 0;
cin >> A;
while (A > 0){
if (A%2 == 0){
A /= 2;
count++;
}
else if (A%3 == 0){
A /= 3;
count++;
}
else{
A--;
count++;
}
}
cout << count << "\n";
}
}
나는 현재 어떤 경우에는 작동하지 않습니다 염두에두고 (I 출력하지 원하는 솔루션을 의미하고, 코드가 작동하는 코드가 있음)이 코드 사이를 말할 = 10. 내 코드는 10/2, -1, 2/2, 2/-1, 그래서 5 작업을합니다. 그러나, 최적은 10 -1,/3,/3 다시 -1 다음 4 작업입니다. 누구든지이 문제에 대한 해결책을 어떻게 코드화해야하는지 알 수 있습니까? 감사! 어떤 도움을 주셔서 감사합니다!
생각하지 않는다, 당신이 도움이 치열하지 않은 경우 그 다음 경우라면, 다음과 같은 것들을 – QuIcKmAtHs
말을하지 마십시오 어떤 질문의 종류 내가 물어 봐야 할까? – QuIcKmAtHs
첫째,이 질문은 인터뷰 질문이 아니며 의미가 적은 사이트의 질문이 아닙니다. 그것은 내 튜터가 제기 한 문제입니다. 나는 당신이 훨씬 더 명확하게 그들을 볼 수 있도록 단어를 대담하게 해야하는 경우 미안 해요. 같은 줄을 따라, 사람은 당신의 게시물도 의미가 없다는 것을 알게 될 것입니다! 마지막으로, 그런 도움이되지 않는 의견이 필요 없다고 생각합니다. 내 쿼리에 응답만으로 충분할 것입니다. – QuIcKmAtHs