编写一个Java程序 用1、2、3、4这四个数组成一个四位数,要求每位不能重复,输出其所有组合

作者&投稿:钮征 (若有异议请与网页底部的电邮联系)
JAVA编程,输入一个四位数,求四位数的每位数字之和!~

public static void main(String[] args)
这个算法的 c和java基本没区别的
public static void main(String[] arg){
int k=0;int m=0;
System.out.println("输入一个四位数");
Scanner input=new Scanner(System.in);
int nums=nextInt();
while(nums!=0){
m=nums%10;
nums=nums/10;
k=k+m;System.out.println("所有位数和为:"+k);
int num=sc.nextInt();
//定义一个放个位数的变量 aaa
while(num!=0){
int aaa=0;
//求出个位上的数
aaa=num%10;
//求各个数的和
sum=sum+aaa;
//把num除于10,以便于取得十位数
num=num/10;//输出总和
System.out.println("各个位数之和为:"+sum

// 1,2,3,4四个数可以组成多少个无重复数字的三位数
//考察多重循环
int count = 0;//计数器
for (int i = 1; i <= 4; i++) {//遍历个位的所有数
for (int j = 1; j <= 4; j++) {//遍历十位的所有数
for (int k = 1; k <= 4; k++) {//遍历百位的所有数
if (k != j && k != i && j != i) {//如果个位,十位,百位上的数都不相等
count++;//记录组成的个数
System.out.println(k * 100 + j * 10 + i);//打印组成后的三位数
}
}
}
}
System.out.println(count);//打印组成的三位数的个数
}

方法1:

public class PaiLie {// 对一组数字进行全排列
public static void main(String[] args) {
int a[] = new int[5];
for (int i = 1; i < a.length; i++)
a[i] = i;
pailie(a, 1);
}
public static void pailie(int[] a, int n) {// n 待交换数的索引
if (n < a.length - 1) {
for (int i = n; i < a.length; i++) {
int temp = a[i];
for (int k = i; k > n; k--)
a[k] = a[k - 1];
a[n] = temp; // 把该段最右面的数移到最左面
pailie(a, n + 1);
// 还原原来序列
for (int k = n; k < i; k++)
a[k] = a[k + 1];
a[i] = temp;
}
} else {
for (int j = 1; j < a.length; j++)
System.out.print(a[j] + " ");
System.out.println();
}
}
}

方法2:

public class PaiLie_2 {
public static void main(String[] args) {
final int N = 4;
int a[] = new int[N + 1];
for (int i = 1; i < a.length; i++)
a[i] = i;
pailie(a, 1, N);
} // 产生a[m:n]的所有排列
public static void pailie(int[] a, int m, int n) {
if (m == n) {
for (int j = 1; j <= n; j++)
System.out.print(a[j] + " ");
System.out.println();
} else
for (int i = m; i <= n; i++) {
swap(a, m, i);
pailie(a, m + 1, n);
swap(a, m, i);
}
}
// 交换数组中两个位置上的元素
public static void swap(int[] number, int i, int j) {
int t;
t = number[i];
number[i] = number[j];
number[j] = t;
}
}

楼上的代码都蛮好的,思路是这样的,用嵌套的for循环去实现(这样就不会重复),4个for循环表示四位数。他们是一一对应的,简单说吧:比如用两个for循环:
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
if(i!=j)·····
}
}
这样的思路你应该懂的···

public class Practist {
/**
* 本法是输入1,2,3,4不重复的4位数
* 一个循环是代表一个位数,在最后一层中做个判断并输出,就可以显示了。
*/
public void printf(){
for(int i=1;i<5;i++){
for(int j=1;j<5;j++){
for(int m=1;m<5;m++){
for(int n=1;n<5;n++){
if(i!=j && i!=m && i!=n && j!=m && j!=n && m!=n)
System.out.printf("%d%d%d%d\n",i,j,m,n);
}
}
}
}
System.out.println();
}

public static void main(String[]args){
Practist test = new Practist();
test.printf();
}
}

//用了递归深度搜索,顺便学习下

public class ForYou {
static final int[] DIGIT = {1,2,3,4};
static int count = 0;//记录符合要求的组合数
public static void main(String[] args) {
int[] num = new int[4];
search(num, 0);
}
//使用递归搜索
private static void search(int[] num, int n) {
if(n == 4)
{
print(num);//打印
return;
}
for(int i = 0 ; i < DIGIT.length; i++)
{
int j;
for(j = 0 ; j < n; j++)//判断是否重复
{
if(DIGIT[i] == num[j])
break;
}
if(j < n)
continue;
//不重复则继续
num[n] = DIGIT[i];
search(num, n + 1);
}
}
//打印符合要求的组合
private static void print(int[] num) {
System.out.print(++count + " : ");
for(int i = 0 ; i < num.length; i++)
System.out.print(num[i] + ", ");
System.out.println();
}
}

int n;
int count=0;
Vector<Integer> v = new Vector<Integer>();
for(int i=1;i<=4;i++)
{
for(int j=1;j<=4;j++)
{
if(i!=j)
{
for(int l=1;l<=4;l++)
{
if(i!=l&&j!=l)
for(int k=1;k<=4;k++)
{
if(i!=k&&j!=k&&l!=k)
{
n=i*1000+j*100+l*10+k;
v.add(n);
count++;
}
}
}
}
}
}
System.out.println(count);
System.out.println(v);

修改好了 没有问题


java写一个测试程序
1 \/\/ 修改了代码的结构和部分语法错误,提高了可读性。2 public class OrderDemo1 { 3 public static void main(String[] args) { 4 System.out.println("\\n\\t\\t===升级需求!===\\n");5 init();6 } \/\/ 初始化!7 private static void init() { 8 Order[] orr ...

如何用java语言编写一个程序?
根据目的判断,需要调取到的函数有randi、mod、mean、find,分别用于产生随机整数、判断是否为偶数、计算平均数、寻找满足条件元素的下标。代码如下:clc;clear;n=randi([10,99],[1,20])%产生随机数,在10到99之间的均匀随机数 a=mean(n)%计算平均数 n(find(n...

如何用Eclipse建立一个Java应用程序
解压后目录大概是这样的:‍2.双击打开,如遇到问题,不能正常打开,请检查jdk是否安装,是否与eclipse使用位数一致!进入后有个欢迎界面,关掉初始的欢迎页面,会是这样的:‍然后点击做上角的加号,进入这个界面:继续:完成后,一个java项目就建立完成了!然后你需要学会建立一个类,可以选...

用Java 写一个两个整数相加的程序
public class Test { public static int add(int a,int b){ return a+b;} public static void main(String args[]){ Scanner scanner = new Scanner(System.in);System.out.println("请输入第一个数");int a = scanner.nextInt();System.out.println("请输入第二个数");int b = scanne...

如何编写第一个java程序
public static void main(String[] args)Java 中的主运行方法,它和 C\/C++中的main()作用是一样的,就是所有的程序都从“main()”中开始执行。要执行 Java 程序,必须有一个包括主运行方法的类。至于“public static void”的含义,读者可以尝试着去掉,看看编译器会提示什么错误。System.out....

如何用Eclipse建立一个Java应用程序
1、用Eclipse建立一个Java应用程序首先需要创建一个Java工程,在工程里添加一个类,接着在此类中编写代码即可完成一个Java应用程序的建立了;2、使用的工具是Eclipse;3、步骤如下:(1)、打开Eclipse,点击New菜单,新建一个Java Project,输入工程名;(2)、右键工程里的src目录,点击New菜单,选择...

用java写一个程序?
以下是一个使用Java语言编写的程序,可以计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件:javaCopy code import java.io.FileOutputStream; import java.io.IOException; public class PrimeNumberCalculator { public static void main(String[] args) { int start = 20000000...

eclipse怎么编写JAVA程序,怎么新建
第一步:启动Eclipse,第一次启动软件时,会提示选择工作空间(WorkSpace),可在硬盘上新建一个文件夹作为工作空间,这个文件夹将会保存你所编写的所有的源代码。第二步:新建一个简单的Java工程。依次点file->new->project->java project。第三步:别是填写工程名以及源码文件夹,一般情况是默认src作为...

在java中编写程序,定义一个学生类
\/ 编写一个Java应用程序,该程序包括3个类:定义一个学生类,Student有姓名,学号,选学的课程列表 定义一个课程类:课程名称,课程分数 (1)初始化一个学生,选择了三门课程,并添加到学生的属性中 (2)实现统计学生的总分功能 1.正确编写2个类(5分)2.统计学生的总分功能(5分)\/ public class ...

用JAVA编写一个程序,要求如下:
import java.util.Scanner;public class StudentTest {public static void main(String[] args) {Student student = new Student();Scanner sc = new Scanner(System.in);System.out.println("请输入姓名:");student.setName(sc.next());System.out.println("请输入性别:");student.setSex(sc....

沂南县17758397058: 编写一个Java程序 用1、2、3、4这四个数组成一个四位数,要求每位不能重复,输出其所有组合 -
保砌威赛: public class Practist { /** * 本法是输入1,2,3,4不重复的4位数 * 一个循环是代表一个位数,在最后一层中做个判断并输出,就可以显示了. */ public void printf(){ for(int i=1;i<5;i++){ for(int j=1;j<5;j++){ for(int m=1;m<5;m++){ for(int n=1;n<5;n++){ if(i!=j ...

沂南县17758397058: 编写一个1+2=3的java程序 -
保砌威赛: public class Test(){public static void main(String[] args){int a =1;int b =2;int sum = a+b;System.out.println(“1+2=+sum); }}

沂南县17758397058: 编写一个Java程序,求1+2!+3!+4!+5!+……+20! -
保砌威赛: public class FactorialPlus {int f(int n){int t = 0;int s = 1;for(int i = 1;i <= n;i++){s = s * i;t = t + s;}return t;}public static void main (String [] args){int m = 20;//改变这个m的值即可改变输出结果FactorialPlus p = new FactorialPlus();if(m >...

沂南县17758397058: 编写java 程序1*2*3*…*100 -
保砌威赛: 直接写方法:public int mult(){ int num = 1; for (int i = 0,l = 100;i=<l;i++){ num = num * i; } return num; } 后面直接调用mult方法就能得到结果了,比如: int result = mult();这个result就是结果.

沂南县17758397058: 用java编写 1+2+3...+1000 详细的程序 一步不带省略的 谢谢大家 -
保砌威赛: public class MathUtil { public static void main(String[] args) { int sum = 0; for(int i = 1; i <= 1000; i++){sum += i;} System.out.println("1+2+3+4+...+998+999+1000 = " + sum);} }---------------------程序输出 1+2+3+4+...+998+999+1000 = 500500

沂南县17758397058: 求用java编写应用程序求1!+2!+3!+4!+…… +20! -
保砌威赛: class Test{static long f(long i){if (i<=1) return 1;return f(i-1)*i; }public static void main(String[] args){long l = 0;for (int i=1;i<=20;i++){l += f(i);}System.out.println(l); } }

沂南县17758397058: 编译一个1+2=3的java程序 -
保砌威赛: import java.util.*;public class Test{ public static void main(String[] args){ Scanner s=new Scanner(System.in); int a=s.nextInt(); int b=s.nextInt(); System.out.println(a+b) }}//运行后,在控制台输入1 回车,2回车 ,会出现3

沂南县17758397058: 用java程序编写1*2*3******100怎么写 -
保砌威赛: 给你写的一段代码,最简单的,希望你能笑纳:: public class Test { public static void main(String args[]) { int sum=1; for(int i=1;i<=100;i++) { sum*=i; } System.out.println("值为:"+sum); } }求采纳

沂南县17758397058: 1、编写一个Java程序,计算并输出1+2!+3!+…+10!的值. -
保砌威赛: test {public static void main(String args[]){long sum=0,a=1;long i=1;while(i<=10){if(i>=1)sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);} }

沂南县17758397058: 用JAVA语言编写一个如下格式的程序,第一行为 1,第二行为 1 2 1,第三行为 1 2 3 2 1,其中第一行的1要与第二行的2与第三行的3对齐.这种三角形的格式,行数由键盘输入.谢谢
保砌威赛: 这个程序要用列对称的方法,因为行没有对称,这样只要列对称,还比较容易. import java.util.*; public class Ysj { public static int[][] ysj(int n){ int a[][];

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网