1、定义一个10个元素的数组,要求从键盘输入(Scanner类,循环输入),并在里面查找某个数据,找到输出“有”,没有这个数提示“无”。
思路:使用Scanner类输入数组元素,然后再输入要查找的元素,循环比较查找。
package text;
import java.util.Scanner;
public class shiyan {
public static void main(String[] args) {
int[]arr={1,3,43,32,54,65,43,32,54,10};
System.out.println("请输入要查找的数字");
Scanner s=new Scanner(System.in);
int index=s.nextInt();
int flag=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]==index){
flag=1;
break;
}
}
if(flag==1){
System.out.println("该数组有这个数字");
}
else{
System.out.println("没有这个元素");
}
}
}
2、编写一个数组处理类,要求里面有这样的两个方法,第一个方法,可以对输入的数组进行排序,第二个方法可以删除指定位置的数组元素;然后再写一个主类,测试上面这个类的正确性。
思路:第一个类框架
class first{
void sort(int [] a){//该方法为对a数组排序的方法}
void delelement(int[] a,int index){//该方法实现删除a数组内第index 位置的元素}
//可以增加折半等等
}
第二个类框架:
class second{
public static void main(String args[])
{ 使用Scanner输入一个数组,采用前一个类的第一方法对其排序,输出看看是否正确,在采用前一个类的第二个方法,输出第3个元素,验证正确性。
}
import java.util.Scanner;
public class paiXu {
void sort(int[] a) {
int i, j, k, temp;
for (i = 0; i < a.length; i++) {
k = i;
for (j = i + 1; i < a.length; j++)
if (a[k] < a[j])
k = j;
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
void delete(int[] a, int index) {
for (int i = index; i < a.length - 1; i++)
a[i] = a[i + 1];
}
void printarray(int[] a) {
for (int i = 0; i < a.length; i++)
System.out.print(a[i]);
System.out.println(" ");
}
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int[]a=new int[10];
int i;
System.out.println("请输入十个数");
for(i=0;i<10;i++)
a[i] = sc.nextInt();
paiXu p=new paiXu();
System.out.print("排序前输出:");
p.printarray(a);
p.sort(a);
System.out.println("排序后输出:");
p.printarray(a);
p.delete(a,5);
System.out.println("删除第五个元素后输出:");
p.printarray(a);
}
}
3、给定一个十进制正整数(不超过 3000 位) , 请将其转换成对应的二进制整数
比如3465555369355754989772
输出
101110111101111000111101111101110010000100111001011011011110100011001100
public class Change {
public static String Transforms(String s, int x, int y) {
return new java.math.BigInteger(s, x).toString(y);
}
public static String Transforms2(String s, int x, int y) {
int shu[] = new int[3000];
int c[] = new int[3000];
String yu = "";
for (int i = 1; i < s.length(); i++) {
shu[i] = s.charAt(i - 1) - '0';
}
shu[0] = s.length();
while (shu[0] >= 1) {
c[0] = shu[0];
x = 0;
for (int i = 1; i <= c[0]; i++) {
c[i] = (x * 10 + shu[i]) / y;
x = (x * 10 + shu[i]) % y;
}
yu =x+yu;
int lenc = 1;
while (c[lenc] == 0 && lenc <= c[0]) {
lenc++;
shu = new int[3000];
for (int j = lenc; j <=c[0]; j++) {
shu[++shu[0]] = c[j];
}
}
}
return yu;
}
public static void main(String[] args) {
System.out.println("请输入一串十进制数");
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
System.out.println("转换为二级制后为");
System.out.println(Change.Transforms(str1, 10, 2));
System.out.println(Change.Transforms2(str1, 10, 2));
}
}