Jump to content
bcman

[JAVA] Program din C++ în Java

Recommended Posts

Posted (edited)

Salutare,

Am urm?torul cod în C++

#include <fstream>

#include <iostream>

#include <math.h>

using namespace std;

bool pal(unsigned n)

{

unsigned x=n, inv=0;

while (x>0)

{

inv = inv*10+x%10;

x/=10;

}

return inv==n;

}

int main()

{

ifstream fin("test.in");

unsigned n; fin >> n;

for (unsigned i=1;i<=n;i++)

{

unsigned a, b, rez=0;

fin >> a >> b;

if (pal(a)&&pal(int(sqrt(double(a))))) rez++;

a=int(sqrt(double(a)))+1;

b=int(sqrt(double(B)));

while (a<=B)

{

if (pal(a) && pal(a*a))

rez++;

a++;

}

cout << "Case #" << i << ": " << rez << endl;

}

return 0;

}

?tiu c? putea fi scris ceva mai optimizat, ideea e c? am nevoie de acest cod în Java. M? poate ajuta cineva?

?i cam ce am f?cut eu:

package palindrome;

import java.util.*;

public class palindrome

{

public static boolean pal(int n)

{

int x = n;

int inv = 0;

while (x > 0)

{

inv = inv * 10 + x % 10;

x /= 10;

}

return inv == n;

}

public static int Main()

{

Scanner sc = new Scanner(new File("file.in"));

int n = sc.nextInt();

for (int i = 1;i <= n;i++)

{

int rez = 0;

int a = sc.nextInt();

int b = sc.nextInt();

if (palindrome.pal(a) && palindrome.pal((int)Math.sqrt((double)a)))

{

rez++;

}

a = (int)Math.sqrt((double)a) + 1;

b = (int)Math.sqrt((double)B);

while (a <= B)

{

if (palindrome.pal(a) && palindrome.pal(a * a))

{

rez++;

}

a++;

}

System.out.print("Case #");

System.out.print(i);

System.out.print(": ");

System.out.print(rez);

System.out.print("\n");

}

return 0;

}

}

Edited by bcman
Posted

Citeste de la tastatura de cate ori sa ruleze programul si apoi primeste input, numarul posibil palindrom.

E neclar care e rolul lui a si b in sintaxa, dar daca ai intrebari le putem lamuri.

package generics.exercises;

import java.util.Scanner;

public class Palindrome {

public static boolean isPalindrome(int numberPossiblePalindrome) {

int number = numberPossiblePalindrome;

int reverse = 0;

while (number > 0) {

reverse = reverse * 10 + number % 10;

number /= 10;

}

return reverse == numberPossiblePalindrome;

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("Continue? [Y/N]");

int count = 0;

while (sc.hasNext() && sc.nextLine().equalsIgnoreCase("y")) {

System.out.println("Attempts: ");

int attempts = sc.nextInt();

for (int i = 0; i < attempts; i++) {

System.out.println("Palindrome candidate number: ");

int palindromeCandidateNumber = sc.nextInt();

System.out.println("Limit number: ");

int limitNumber = sc.nextInt();

double sqrtNumber = Math

.sqrt((double) palindromeCandidateNumber);

if (isPalindrome(palindromeCandidateNumber)

&& isPalindrome((int) sqrtNumber)) {

count++;

}

palindromeCandidateNumber = (int) Math

.sqrt((double) palindromeCandidateNumber) + 1;

limitNumber = (int) Math.sqrt((double) limitNumber);

while (palindromeCandidateNumber <= limitNumber) {

if (isPalindrome(palindromeCandidateNumber)

&& isPalindrome(palindromeCandidateNumber

* palindromeCandidateNumber)) {

count++;

}

palindromeCandidateNumber++;

}

}

}

System.out.println("rez:" + count);

}

}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...