1. 利用循环打印如下图形

*****
****
***
**
*
  1. public class Main {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. int i = 5;
  5. while (i >= 0) {
  6. for (int j = i; j > 0; j--)
  7. System.out.print("*");
  8. System.out.println();
  9. i--;
  10. }
  11. }
  12.  
  13. }

2.利用循环打印如下图形

*
**
***
****
*****
****
***
**
*
  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. int i = 1;
  6. while (i <= 5) {
  7. for (int j = 0; j < i; j++)
  8. System.out.print("*");
  9. System.out.println();
  10. i++;
  11. }
  12. i = 4;
  13. while (i >= 0) {
  14. for (int j = i; j > 0; j--)
  15. System.out.print("*");
  16. System.out.println();
  17. i--;
  18. }
  19. }
  20.  
  21. }

3.利用循环打印如下图形

 
  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. int k = 5;
  6. for (int i = 1; i <= k; i++) {
  7. for (int m = k - i; m > 0; m--)
  8. System.out.print(" ");
  9. for (int n = i; n > 0; n--)
  10. System.out.print("* ");
  11. System.out.println();
  12. }
  13. for (int i = k - 1; i >= 0; i--) {
  14. for (int m = 1; m <= k - i; m++)
  15. System.out.print(" ");
  16. for (int n = i; n > 0; n--)
  17. System.out.print("* ");
  18. System.out.println();
  19. }
  20. }
  21.  
  22. }

4.输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。

例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. for (int i = 1; i <= 9; i++)
  6. for (int j = 0; j <= 9; j++)
  7. for (int k = 0; k <= 9; k++) {
  8. if (i * i * i + j * j * j + k * k * k == (i * 100 + j * 10 + k))
  9. System.out.println(i * 100 + j * 10 + k);
  10. }
  11. }
  12. }

5.

问题一:

从键盘读入个数为10个的整数,并判断读入的正数和负数的个数。
问题二:
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4.  
  5. public static void main(String[] args) {
  6. // TODO Auto-generated method stub
  7. Scanner sc=new Scanner(System.in);
  8. funCount(sc.nextInt());
  9. sc.close();
  10. }
  11. private static void funCount(int type) {
  12. Scanner sc=new Scanner(System.in);
  13. int i=0,plus=0,minus=0;
  14. if(type==1){
  15. System.out.println("输入10个数");
  16. do{
  17. if(sc.nextInt()>=0)plus++;
  18. else
  19. minus++;
  20. i++;
  21. }while(i<10);
  22. System.out.println("正数的个数为:"+plus+"负数的个数为:"+minus);
  23. }
  24. else{
  25. System.out.println("输入任意个数字,以0结束");
  26. int ip;
  27. while((ip=sc.nextInt())!=0){
  28. if(ip>0)plus++;
  29. else
  30. minus++;
  31. }
  32. System.out.println("正数的个数为:"+plus+"负数的个数为:"+minus);
  33. }
  34. sc.close();
  35. }
  36.  
  37. }

6.100以内的所有质数

  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. for (int i = 2; i <= 100; i++) {
  6. int sum = 0;
  7. if (i == 2 || i == 3)
  8. System.out.println(i);
  9. else {
  10. for (int j = 2; j < i; j++) {
  11. if (i % j == 0) {
  12. sum++;
  13. break;
  14. }
  15. }
  16. if (sum == 0)
  17. System.out.println(i);
  18. }
  19. }
  20. }
  21. }

7.一个数如果恰好等于它的因子之和,这个数就称为"完数"。(因子:除去这个数本身正的约数)
例如6=1+2+3.编程 找出1000以内的所有完数

  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. for (int i = 1; i <= 1000; i++) {
  6. int sum = 0;
  7. for (int j = 1; j <= i / 2; j++) {
  8. if (i % j == 0)
  9. sum += j;
  10. }
  11. if (sum == i)
  12. System.out.println(i);
  13. }
  14. }
  15. }

【以下可能用到数组,把排序的数可以提前初始化到一个int数组当中,如
int[] dataSort = new int[]{9, -16, 21, 23, -30, -49, 21, 30, 30}; 
访问其中每个数就利用下标进行,下标从0开始的,如  取dataSort[2],得到的值就是 21.

以下是把数据结构当中所学的基本排序算法都一一实现一下。
8.直接插入排序  10. 直接选择排序  11. 冒泡排序  12. Shell排序  13. 快速排序
第9-13题的排序每个同学们必做,14-17同学们根据自己的能力选做
【14. 折半插入排序  15. 堆排序   16. 归并排序   17.基数排序 】

 
注:这里采用随机数组,取值范围是在-100到100之间,每个排序方法定义一个类,保证使用方式上基本一致,后面三种排序方法写起来麻烦懒得写了。
  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. int dataSort[] = new int[10];
  6. for (int i = 0; i < dataSort.length; i++) {
  7. dataSort[i] = (int) (Math.random() * 200) - 100;
  8. }
  9. int dataBackup[] = dataSort;// 备份数组保证每次排序的初始内容一样
  10.  
  11. dataSort = dataBackup;
  12. StraightInsertionSort sis = new StraightInsertionSort(dataSort);// 直接插入排序
  13. printData(sis.TAG, sis.data);
  14.  
  15. dataSort = dataBackup;
  16. StraightSelectSort sss = new StraightSelectSort(dataSort);// 直接选择排序
  17. printData(sss.TAG, sss.data);
  18.  
  19. dataSort = dataBackup;
  20. BubbleSort bbs = new BubbleSort(dataSort);// 冒泡排序
  21. printData(bbs.TAG, bbs.data);
  22.  
  23. dataSort = dataBackup;
  24. ShellSort ss = new ShellSort(dataSort);// Shell排序
  25. printData(ss.TAG, ss.data);
  26.  
  27. dataSort = dataBackup;
  28. QuickSort qs = new QuickSort(dataSort);
  29. printData(qs.TAG, qs.data);
  30.  
  31. dataSort = dataBackup;
  32. BinarySort bs = new BinarySort(dataSort);// 折半插入排序
  33. printData(bs.TAG, bs.data);
  34. }
  35.  
  36. private static void printData(String a, int[] d) {
  37. // TODO Auto-generated method stub
  38. System.out.printf("%-15s\t", new Object[] { a });
  39. System.out.print("-->\t");
  40. for (int i = 0; i < d.length; i++) {
  41. System.out.print(d[i] + "\t");
  42. }
  43. System.out.println();
  44. }
  45. }
  46.  
  47. public class StraightInsertionSort {
  48. String TAG="直接插入排序";
  49. int data[];
  50. public StraightInsertionSort(int data[]){
  51. this.data=data;
  52. sort(data);
  53. }
  54. private void sort(int[] d) {
  55. // TODO Auto-generated method stub
  56. int temp;// 存放最小元素
  57. for (int i = 1; i < d.length; i++) {
  58. int j = i - 1;
  59. temp = d[i];
  60. while (temp < d[j]) {
  61. d[j+1] = d[j];
  62. j--;
  63. if (j < 0)
  64. break;
  65. }
  66. d[j + 1] = temp;
  67. }
  68. }
  69. }
  70.  
  71. public class StraightSelectSort {
  72. String TAG="直接选择排序";
  73. int data[];
  74. public StraightSelectSort(int data[]){
  75. this.data=data;
  76. sort(data);
  77. }
  78. private void sort(int[] d) {
  79. // TODO Auto-generated method stub
  80. int temp;// 临时变量
  81. for (int i = 1; i < d.length; i++) {
  82. int k = i;// 记录最小元素位置
  83. for (int j = i + 1; j < d.length; j++) {
  84. if (d[j] < d[k])
  85. k = j;
  86. if (k != i) {
  87. temp = d[k];
  88. d[k] = d[i];
  89. d[i] = temp;
  90. }
  91. }
  92. }
  93. }
  94. }
  95.  
  96. public class BubbleSort {
  97. String TAG = "冒泡排序";
  98. int data[];
  99.  
  100. public BubbleSort(int data[]) {
  101. this.data = data;
  102. sort(data);
  103. }
  104.  
  105. private void sort(int[] d) {
  106. // TODO Auto-generated method stub
  107. boolean hasSort = true;// 判断是否进行排序了的标识
  108. int i = 0;
  109. while (i < d.length && hasSort == true) {
  110. hasSort = false;
  111. for (int j = 0; j < d.length - 1; j++) {
  112. if (d[j + 1] < d[j]) {
  113. int temp = d[j];
  114. d[j] = d[j + 1];
  115. d[j + 1] = temp;
  116. hasSort = true;
  117. }
  118. }
  119. i++;
  120. }
  121. }
  122. }
  123.  
  124. public class ShellSort {
  125. String TAG="Shell排序";
  126. int data[];
  127. public ShellSort(int data[]){
  128. this.data=data;
  129. sort(data);
  130. }
  131. private void sort(int[] d) {
  132. // TODO Auto-generated method stub
  133. for (int t = d.length / 2; t >= 1; t = t / 2) {
  134. for (int i = t ; i < d.length; i++) {
  135. int temp = d[i];
  136. int j;
  137. for (j = i - t; j >= 0 && temp < d[j]; j = j - t) {
  138. d[j + t] = d[j];
  139. }
  140. d[j + t] = temp;
  141. }
  142. }
  143. }
  144. }
  145.  
  146. public class QuickSort {
  147. String TAG="快速排序";
  148. int data[];
  149. public QuickSort(int data[]){
  150. this.data=data;
  151. sort(data,0,data.length-1);
  152. }
  153. private void sort(int[] d, int left, int right) {
  154. // TODO Auto-generated method stub
  155. if(left>=right)return;
  156. int temp=0;
  157. temp=d[left];
  158. int l= left, r = right;
  159. while (l < r) {
  160. while (l<r&&d[r] > temp)
  161. r--;
  162. if(l<r)d[l++]=d[r];
  163. while (l<r&&d[l] < temp)
  164. l++;
  165. if(l<r)d[r--]=d[l];
  166. }
  167. d[l]=temp;
  168. sort(d, left, l-1);
  169. sort(d, l+1, right);
  170. }
  171. }
  172. public class BinarySort {
  173. String TAG = "折半插入排序";
  174. int data[];
  175.  
  176. public BinarySort(int data[]) {
  177. this.data = data;
  178. sort(data);
  179. }
  180.  
  181. private void sort(int[] d) {
  182. // TODO Auto-generated method stub
  183. for (int i = 1; i < d.length; i++) {
  184. int temp = d[i];
  185. int left = 0, right = i - 1;
  186. while (left <= right) {
  187. int mid = (left + right) / 2;
  188. if (d[i] < d[mid])
  189. right = mid - 1;
  190. else
  191. left = mid + 1;
  192. }
  193. for (int j = i - 1; j >= left; j--)
  194. d[j + 1] = d[j];
  195. d[left] = temp;
  196. }
  197. }
  198. }

java小程序整理及排序算法的更多相关文章

  1. 程序兵法:Java String 源码的排序算法(一)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 <程序兵法:Java Str ...

  2. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  3. Java实现经典七大经典排序算法

    利用Java语言实现七大经典排序算法:冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序. 分类 类别 算法 插入排序类 插入排序.希尔排序 选择排序类 选择排序.堆排序 交换排序类 ...

  4. 输出多行字符的一个简单JAVA小程序

    public class JAVA { public static void main(String[] args) { System.out.println("-------------- ...

  5. 浏览器兼容java小程序配置说明

    最近在使用的一个web应用系统是内嵌了java小程序,遇到了各种浏览器兼容性问题,现梳理如下: 1.通过以下链接检测当前电脑是否已经安装有java https://java.com/zh_CN/dow ...

  6. 20162311 编写Android程序测试查找排序算法

    20162311 编写Android程序测试查找排序算法 一.设置图形界面 因为是测试查找和排序算法,所以先要有一个目标数组.为了得到一个目标数组,我设置一个EditText和一个Button来添加数 ...

  7. 框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口

    框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口. 与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局. package TomAwt; im ...

  8. 小程序 之使用HMACSHA1算法加密报文

    首先说说我们前端常用的加密技术, 我们常用的加密技术有:如MD5加密,base64加密 今天要说的是HMACSHA1加密技术 先介绍下什么是SHA1算法, 安全哈希算法(Secure Hash Alg ...

  9. 微信小程序通讯录字母排序

    微信小程序通讯录 字母排序效果: demo地址:https://github.com/PeachCoder/wechat-contacts

随机推荐

  1. sqlserver中表变量和变量表之间区别

    sqlserver中表变量和变量表之间区别

  2. css中的盒子模型

    css中的盒子模型 css中的盒子模型,有两种,一种是“标准 W3C 盒子模型”,另外一种是IE盒子模型.   1.w3c盒子模型 从图中可以看出:w3c盒子模型的范围包括了:margin,borde ...

  3. SQL-用JOIN连接多个表

    select * from table1 inner join table2 on table1.id=table2.id     其实 INNER JOIN --ON的语法格式可以概括为:      ...

  4. Web设计者和开发者必备的28个Chrome插件

    摘要 对于许多Web设计者和开发者来说,Firefox浏览器是无法超越的,对于其他人Chrome正在蚕食Firefox的浏览器市场. 在过去的两年,谷歌Chrome浏览器的发布以来,引起了人们激烈争论 ...

  5. JQuery:JQuery的尺寸

    JQuery:尺寸 介绍:通过 jQuery,很容易处理元素和浏览器窗口的尺寸.jQuery 提供多个处理尺寸的重要方法:width().height().innerHeight().outerWid ...

  6. Ubuntu 安装软件

    1,安装pthread的man文档 sudo apt-get install manpages-posix manpages-posix-dev

  7. autorelease应用

    // //  main.m //  02-autorelease应用 // //  Created by apple on 14-3-18. //  Copyright (c) 2014年 apple ...

  8. windows下根据端口号杀死进程

    Windows不像Linux,Unix那样,ps -ef 查出端口和进程号,然后根据进程号直接kill进程. Windows根据端口号杀死进程要分三步: 第一步 根据端口号寻找进程号 C:\>n ...

  9. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  10. android studio不能创建android项目,或者不能识别android项目的解决方法

    1.先点击file->close project回到android studio 欢迎界面,然后按如下图步骤添加相关的plugin就行了,然后重启. 2.如图 3. 4.