Help convert c++ to java. Program must run exactly like the c++ one. Will rate a
ID: 3939264 • Letter: H
Question
Help convert c++ to java.
Program must run exactly like the c++ one. Will rate and thumb up, thanks!
----------------------------------------------
#include
using namespace std;
int main()
{
//Declare all required varaibles
int n,r;
int m,p;
int set[50];
int includedNumbers[25],excludedNumbers[25];
int subSet[50];
//Read n and r values from user
cout<<" Enter n value : ";
cin>>n;
//Filling array
for(int i=0;i {
set[i] = i+1;
}
cout<<" Enter r value : ";
cin>>r;
cout<<" Enter m value (Included numbers count) : ";
cin>>m;
//Read included numbers
cout<<"Enter m array values (Included number) : ";
for(int i=0;i {
cin>>includedNumbers[i];
}
cout<<" Enter p value (Excluded numbers count) : ";
cin>>p;
//Read excluded numbers
cout<<"Enter p array values (Included number) : ";
for(int i=0;i {
cin>>excludedNumbers[i];
}
cout<<" All subsets are : ";
//Find subset of length r
for (int i = 0; i < (1< {
int subSetSize = 0;
//Finding subset
for (int j = 0; j < n; j++)
{
//Precondition to check subset
if ((i & (1 << j)) > 0)
{
subSet[subSetSize] = set[j];
subSetSize++;
}
}
//check if subset or length r
if(subSetSize==r)
{
//Check if all included number present
bool includedPresent = true;
for(int l=0;l {
int found = false;
for(int k=0;k {
if(includedNumbers[l]==subSet[k])
{
found = true;
}
}
//if found is false indicates that any of includedNumbers not present in subset
if(found==false)
{
//making includePresent to false and break the loop
includedPresent = false;
break;
}
}
//Check if all excluded number present
bool excludedNotPresent = true;
for(int l=0;l {
int found = false;
for(int k=0;k {
if(excludedNumbers[l]==subSet[k])
{
found = true;
}
}
//if found is true indicates that any of excludedNumbers present in subset
if(found==true)
{
//making excludedNotPresent to false and break loop
excludedNotPresent = false;
break;
}
}
//check if included present and excluded not present
if(includedPresent && excludedNotPresent)
{
cout<<"{ ";
for(int k=0;k {
cout< if(k+1!=subSetSize)
{
cout<<",";
}
}
cout<<"}"< }
}
}
return 0;
}
----------------------------------------------
output:
Explanation / Answer
Please follow the code and comments for description :
CODE :
import java.util.Scanner; // required imports for the code to run
public class ClassConvCPP { // class to run the code
public static void main(String[] args) { // driver method
Scanner sc = new Scanner(System.in); // scanner class to get the data from the user and the console
//Declare all required variables
int n, r;
int m, p;
int set[] = new int[50];
int includedNumbers[] = new int[25];
int excludedNumbers[] = new int[25];
int subSet[] = new int[50];
//Read n and r values from user
System.out.print(" Enter n value : ");
n = sc.nextInt();
//Filling the array
for (int i = 0; i < n; i++) {
set[i] = i + 1;
}
System.out.print(" Enter r value : "); // prompt the message
r = sc.nextInt(); // get the data
System.out.print(" Enter m value (Included numbers count) : "); // prompt the message
m = sc.nextInt(); // get the data
//Read included numbers
System.out.print("Enter m array values (Included number) : "); // prompt the message
for (int i = 0; i < m; i++) {
includedNumbers[i] = sc.nextInt(); // get the data
}
System.out.print(" Enter p value (Excluded numbers count) : "); // prompt the message
p = sc.nextInt(); // get the data
//Read excluded numbers
System.out.print("Enter p array values (Included number) : "); // prompt the message
for (int i = 0; i < m; i++) {
excludedNumbers[i] = sc.nextInt(); // get the data
}
System.out.print(" All subsets are : "); // prompt the message
//Find subset of length r
for (int i = 0; i < (1 << n); i++) {
int subSetSize = 0;
//Finding subset
for (int j = 0; j < n; j++) {
//Precondition to check subset
if ((i & (1 << j)) > 0) {
subSet[subSetSize] = set[j];
subSetSize++;
}
}
//check if subset or length r
if (subSetSize == r) {
//Check if all included number present
boolean includedPresent = true;
for (int l = 0; l < m; l++) {
boolean found = false;
for (int k = 0; k < subSetSize; k++) {
if (includedNumbers[l] == subSet[k]) {
found = true;
}
}
//if found is false indicates that any of includedNumbers not present in subset
if (found == false) {
//making includePresent to false and break the loop
includedPresent = false;
break;
}
}
//Check if all excluded number present
boolean excludedNotPresent = true;
for (int l = 0; l < p; l++) {
boolean found = false;
for (int k = 0; k < subSetSize; k++) {
if (excludedNumbers[l] == subSet[k]) {
found = true;
}
}
//if found is true indicates that any of excludedNumbers present in subset
if (found == true) {
//making excludedNotPresent to false and break loop
excludedNotPresent = false;
break;
}
}
//check if included present and excluded not present
if (includedPresent && excludedNotPresent) {
System.out.print("{ ");
for (int k = 0; k < subSetSize; k++) {
System.out.print(subSet[k]);
if (k + 1 != subSetSize) {
System.out.print(",");
}
}
System.out.println("}");
}
}
}
}
}
OUTPUT :
Enter n value : 10
Enter r value : 6
Enter m value (Included numbers count) : 3
Enter m array values (Included number) :
1
3
5
Enter p value (Excluded numbers count) : 3
Enter p array values (Included number) :
7
8
9
All subsets are :
{ 1,2,3,4,5,6}
{ 1,2,3,4,5,10}
{ 1,2,3,5,6,10}
{ 1,3,4,5,6,10}
Hope this is helpful.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.