就是比如输入一个数8
打印的结果要为
1
2 3
4 5 6
7 8 
就是比如输入一个数10
打印的结果要为
1
2 3
4 5 6
7 8  9 10
跪求java 算法实现 

解决方案 »

  1.   


    public static void print(int n)
    {
    int i = 1 ;
    int row = 1;
    while(i <= n)
    {
    for (int j=0; j < row; j++)
    {
    System.out.print(i++);
    System.out.print(" ");
    if (i > n)
    {
    break;
    }
    }
    System.out.println();
    row++;
    }
    }
      

  2.   

    import java.io.*;
    import java.util.*;
    public class printtest {
        public int num;
        public void printnum()
        {   int count=0;
            int row=1;
         while(count<=num)
         {
         for(int i=0;i<row;i++)
         {   if(count<num)
         {
         System.out.print(count+1);
         System.out.print(" ");
         }
         count++;
            }
         row++;
         System.out.println();
         }
        }

    public static void main(String[] args) {
    printtest a=new printtest();
    Scanner cin=new Scanner(System.in);
    System.out.println("请输入数据:");
            int s=cin.nextInt();
    a.num=s;
    System.out.println("打印效果如下:");
    a.printnum(); }}
      

  3.   


    import java.io.*;
    public class shu 
    {
    public static void main(String[] args)throws IOException
    {
    BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
    String str = bin.readLine();
    int n = Integer.parseInt(str);
    shuchu(n);
    }
    public static void shuchu(int n)
    {
    int i=1,j,x=1;
    boolean flag = true;
    while(flag)
    {
    for(j=i;j>0;j--)
    {
    if(x<=n)
    {
    System.out.print(x);
    x++;
    }
    else
    flag=false;
    }
    i++;
    System.out.println();
    }
    }
    }
      

  4.   

    写了两个,第二个可能会更难理解一些,呵呵。public class Test {
        public static void main(String[] args) {
            final int N = 8;
            for(int i = 1, m = 0, n = 1; i <= N; i++, n++) {
                System.out.printf("%-2d", i);
                if(n == m + 1) {
                    System.out.println();
                    m = n;
                    n = 0;
                }
            }
        }
    }public class Test {
        public static void main(String[] args) {
            final int N = 8;
            for(int i = 1; i <= N; i++) {
                System.out.printf("%-2d ", i);
                if((Math.sqrt(1 + 8 * i) - 1) % 2 == 0) {
                    System.out.println();
                }
            }
        }
    }
      

  5.   


    画蛇添足,让打印结果好看点://          System.out.printf("%-2d ", i);
             System.out.printf("%-"+((N+"").length()+1)+"d",i);
      

  6.   

    我也来写了一个,哈哈
    public class Out {
    public static void main(String[] args) {
    Out out = new Out();
    out.print(20);
    }
    public void print(int N){
    for(int i=1,count=0,n=1;i<=N;i++){
    System.out.print(i+"\t");
    count++;
    if(count==n){
    System.out.print("\n");
    n++;
    count=0;
    }
    }
    }
    }
      

  7.   

    我也来写了一个,哈哈
    public class Out {
    public static void main(String[] args) {
    Out out = new Out();
    out.print(20);
    }
    public void print(int N){
    for(int i=1,count=0,n=1;i<=N;i++){
    System.out.print(i+"\t");
    count++;
    if(count==n){
    System.out.print("\n");
    n++;
    count=0;
    }
    }
    }
    }
      

  8.   


    public class Test {
    public void fun(int n) {
    int m = 1;
    int i = 1;
    while (i <= n) {
    for (int j = 1; j <= m; j++, i++) {
    System.out.print(i);
    }
    m++;
    System.out.println();
    }
    } public static void main(String args[]) {
    new Test().fun(10);
    }
    }
      

  9.   

    上面的有点问题
    public class Test {
    public void fun(int n) {
    int m = 1;
    int i = 1;
    while (i <= n) {
    for (int j = 1; j <= m; j++, i++) {
    if(i > n)
    return;
    System.out.print(i);
    }
    m++;
    System.out.println();
    }
    }
    public static void main(String args[]) {
    new Test().fun(11);
    }
    }
      

  10.   


    public class PrintNum{
    public static void main(String[] args) {
    int n;
    n = 8;//这个数随便由你设你设
    for (int i = 1, k = 1; i < n; i++) {
    for (int j = 0; j < i; j++) {
    if (k > n) break;
    System.out.print((k++) + " ");
    }
    System.out.println();
    }
    return;
    }
    }
      

  11.   

    //刚在记事本里写的 测试过了 能通过,
    import java.util.*;
    public class Q{
      public static void main(String args[]){
         
                 Scanner s=new Scanner(System.in);
          System.out.print("Please input the number:");
         int number=s.nextInt();
         for(int i=0;i<number;i++)
            {     
                  int n=i*(i-1)/2+1;
                  if(n>number){break;}            
                  for(int j=0;j<i;j++)
                     {    
                          int num=i*(i-1)/2+1+j;
                          if(num>number){break;}
                          System.out.print(num);
                     }
                  System.out.println();
            }
      }
    }
      

  12.   


    import java.util.Scanner;
    import static java.lang.System.out;public class Main {
    public static void main(String[] args) { Scanner cin = new Scanner(System.in);
    int n = cin.nextInt();
    int line = 1;
    for (int i = 1; i <= n; i++) {
    out.print(i + " ");
    if (line * (line + 1) / 2 == i) {
    out.println();
    line++;
    }
    }
    }}
      

  13.   

    mod N,求出行数J,再从0到J 每行打印i+1个数。
      

  14.   


    import java.util.*;
    public class PrintNumber {
    public static void main(String[] args){
    System.out.println("请输入最大数:");
    Scanner scanner=new Scanner(System.in); //从键盘输入一个数
    int endNum=scanner.nextInt(); //获取该整数
    int count=1; //记录该行的个数的计数器
    int rowNum=1; //记录第几行(行号)
    for(int i=1;i<=endNum;i++){
    System.out.print(i+"\t"); //输出从1到输入的那个数
    if(rowNum==count){ //(1)1.当行号和该行的个数相等时,
    System.out.println(); //2.输出换行,
    rowNum++; //3.行号加1(即变成下一行的行号)
    count=1; //4.计数器重新从1开始计数
    }else{ //(2)当行号和该行的个数不相等时(说明该行的个数小于行号),计数器加1
    count++;
    }
    }
    }
    }本人测试过了,并加了注释,希望楼主能理解!
      

  15.   

    import java.util.Scanner;
    import static java.lang.System.out;public class Main {
        public static void main(String[] args) {        Scanner cin = new Scanner(System.in);
            int n = cin.nextInt();
            int line = 1;
            for (int i = 1; i <= n; i++) {
                out.print(i + " ");
                if (line * (line + 1) / 2 == i) {
                    out.println();
                    line++;
                }
            }
        }
      

  16.   

    我也贴个~
    private void count(){
    int num = 100;//需要打印的数字
    int row = 1;
    int maxVue = 1;
    while(true){
    for(int i=0;i<row;i++){

    System.out.print(maxVue + "\t");
    if(maxVue>=num){
    break;
    }
    maxVue++;
    }
    System.out.println();
    if(maxVue>num){
    break;
    }
    row++;
    }
    }
      

  17.   


    import java.util.*;
    public class PrintNumber {    public PrintNumber() {
        }
        public static void main(String[] args)
        {
         int n=0;
         int i=1;
         System.out.println("请输入一个整数:");
         Scanner in=new Scanner(System.in);
         n=in.nextInt();
         System.out.println(n);
         for(int j=0;;j++)
         {
         for(int k=0;k<j;k++)
         {
         System.out.print(i++);
         if(i>=(n+1)) break;
         }
         System.out.println();
         if(i>=(n+1)) break;
         }
        }
        
    }
      

  18.   

    也来贴一个import java.util.*;
    public class PrintNumber {
        public static void main( String[] args ) {
            int i=1,lineNumber=1,charNumbers=1;
            int input = new Scanner( System.in ).nextInt();
            while ( i<=input ) {
                System.out.print( i+"\t" );
                if ( charNumbers == lineNumber ) {
                    System.out.println();
                    lineNumber++;
                    charNumbers=0;
                }
                charNumbers++;
                i++;
            }
        }
    }