java中的一些编程题目

来源:互联网 发布:devforge学编程社区 编辑:程序博客网 时间:2024/05/17 01:34

1,递归,实现全排列,不许有重复(字母或数字中含有相同字符)(主要是增加了判断两个数是否需要交换,是否需要以它为基准排列)

2,把一个数组里的数组合全部列出,比如1,和2组合列出来为:1,2,12,21(java版本和c++版本)

3,正则表达式(字符串的匹配)

4,  九 宫格的输出



1,递归,实现全排列,不许有重复(字母或数字中含有相同字符)

public class Allrange {
 
static void perm(int a[],int k,int m)
{
if(k>=m)
{
for(int i=0;i<=k;i++)
System.out.print(a[i]);
System.out.println();
return;
}

for(int i=k;i<=m;i++)
{  
int j;
for(j=k;j<i;j++)
{
if(a[j]==a[i])
break;
}
if(j<i) continue;

swap(a,i,k);
perm(a,k+1,m);
swap(a,i,k);
}
}

static void swap(int a[],int i,int j)
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}


public static void main(String args[])
{
int a[]=new int[]{1,2,2};
perm(a,0,a.length-1);
}

}

2.c++版本

//将一个数组中的字符的全部组合列出,1,2列出来为 1,2,21,12
#include<iostream>
#include<string>
using namespace std;


void AllList(string ss,string pre)
{


cout<<pre<<endl;


for(int i=0;i<ss.size();i++)
{

string temp=ss;
temp.erase(i,1);
AllList(temp,pre+ss[i]);
}
}


void main()
{
string ss;
cin>>ss;
AllList(ss,"");
}


java版本

import java.lang.*;
import java.util.*;




public class p74 {
 public static void main(String args[])
 {
String []array=new String[]{"1","2","3"};
listAll(Arrays.asList(array),"");
 }
 
 public static void listAll(List candidate,String pre)
 {
System.out.println(pre);
 
for(int i=0;i<candidate.size();i++)
{
List temp=new LinkedList(candidate);
listAll(temp,pre+temp.remove(i));
}
 }
}

3

在含有字母和数字的字符串中,找出所有的数字组成的字符串,



public class p188 {
  static String s="32fdsfd8fds0fdsf9323k32k";
  public static void main(String[] args)
  {
 String a=s.replaceAll("[^0-9]", "");
 System.out.println(a);
  }
}


4,先介绍一下九宫格(一个比较特别的方阵)

(1)抽象成计算机语言就是:在一个n*n的矩阵中填入1~n*n的数字(n必须为奇数),使得每一行、每一列、对角线的累加和都相等。

(2)思路:

A:  把 1 放在最后一行的中间

B: 每次向右下角走一步,然后出现了各种情况

  1)如果下(行)出界了,就在最上面对应行位置填入下一个数字

  2)如果右(列)出界了,就在最左边对应列的位置填入下一个数字

 3)如果该位置没有出界,且已经填入了数字,就在没走这一步之前的那个位置的同一列的上一行填入下一个数字

还有一种版本的九宫格是跟这种思路相同,但是方向不同的。(如,1 放在第0行的中间,向右下角走改为向左上角走)


import java.util.Scanner;;
public class nine {
public static void main(String args[]){
int n;

//输入n值
do{
System.out.println("n必须是奇数:");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
}while(n%2==0);

//开始设置方阵的值
int arry[][]=new int[n][n];
int row=n-1,col=n/2;
arry[row][col]=1;

for(int i=2;i<=n*n;i++)
{
row=row+1;
col=col+1;
if(row>=n)   //是否下出界
row=0;
if(col>=n)   //是否右出界
col=0;
if(arry[row][col]==0)
arry[row][col]=i;
else
{  
row=(row-1+n)%n-1;   //还原为原来元素的上一行
col=(col-1+n)%n;        //还原为原来元素的同一列
arry[row][col]=i;
}
}

//输出方阵的值
for(int m=0;m<n;m++)
{ for(int k=0;k<n;k++)
{ System.out.print(arry[m][k]+"\t");   
}
  System.out.println();
}
}
}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 床垫外面布坏了怎么办 淘宝店铺动态评分低怎么办 实创倒闭返款怎么办 qq红包忘记支付密码怎么办 qq红包支付密码忘了怎么办 个人卖东西人家要发票怎么办 打了欠条找不到人怎么办 公章掉进水里了怎么办 手游吃鸡限制登入15分钟怎么办 宝宝的小鸡淹了怎么办 宝宝小鸡底下淹了怎么办 4岁宝宝拉稀水怎么办 2岁半宝宝对眼怎么办 孩子在幼儿园中午不睡觉怎么办 20天婴儿拉稀水怎么办 3个月婴儿拉水怎么办 两岁宝宝拉水怎么办 1岁半宝宝拉水怎么办 5周孩子小鸡长脂肪粒怎么办 小孩丁丁长歪了怎么办 2个月的婴儿咳嗽怎么办 2个月的宝宝干咳怎么办 2月宝宝感冒咳嗽怎么办 产妇肚子上长小疙瘩很痒怎么办 泰迪生下小狗不吃奶怎么办? 刚生的狗不吃奶怎么办 刚出生的小牛不吃奶怎么办 吃奶的狗崽拉稀怎么办 新生儿吃奶老是呛到怎么办 刚生小狗不吃奶怎么办 刚出生的小羊不吃奶怎么办 羔羊走路不稳不吃奶怎么办 新生儿喝奶老是呛到怎么办 宝宝吃母乳呛到怎么办 宝宝一直睡觉不吃奶怎么办 3个月婴儿不吃奶怎么办 新生婴儿晚上不睡觉怎么办 宝宝肚子胀不吃奶怎么办 宝宝25天不睡觉怎么办 50天婴儿不吃奶怎么办 儿子关在房间玩电脑怎么办?