怎么说呢?不论什么编程题,都有很多种方法解决问题,最后能解决我们所提出的问题才是关键的东西,也是未来成为工程师所需要的能力。解决问题是关键,

当我们做好了问题解决的关键途径的时候,如果有着profound idea 更好的提升代码与实际操作的情况那是更好的了。

对今天写的东西,如果要打个分的话一个C+吧太次了,考虑的东西还有许多欠缺。需要掌握的东西还有很多。精通一门语言不是一天两天的事情,一步一个脚印,一口一个大馒头,来充实自己。

  1. package tincode;
  2. import java.io.*;
  3. import java.util.*;
  4. /**
  5. *
  6. * @author Administrator
  7. */
  8. public class Steven {
  9. public static void main(String[] args) throws IOException
  10. {
  11. Steven st = new Steven();
  12. st.fct4_11();
  13. }
  14. //Fibonacci数列双元
  15. public void fct1()
  16. {
  17. int p=0,n=1; //p代表前一个数,n代表后一个数
  18. System.out.println(p+""+n);
  19. for(int i =0;i<17;i++) //前16项
  20. {
  21. n+=p;
  22. p=n-p;
  23. System.out.println(n);
  24. }
  25. }
  26. //判断Fibonacci数,从键盘输入,判断是否; 暂时想不到更好的方法去查找是否斐波那契数列;
  27. public boolean fct2() throws IOException
  28. {
  29. int a = 0,b=1,n,num;
  30. String str;
  31. BufferedReader buf;
  32. buf = new BufferedReader(new InputStreamReader(System.in));
  33. System.out.print("请输入一个正整数");
  34. str=buf.readLine();
  35. num = Integer.parseInt(str);
  36. while(b<num){
  37. n=a+b;
  38. a=b;
  39. b=n;
  40. }
  41. if(num==b){
  42. System.out.println(num+"是Fibonacci数");
  43. return true;
  44. }
  45. System.out.println(num+"不是Fibonacci数");
  46. return false;
  47. }
  48.  
  49. //从键盘输入一个0~100之间的成绩,输出相应的等级,分为5个等级优、良、中、及格和不及格;
  50. public void fct4_1() throws IOException
  51. {
  52. String str;
  53. BufferedReader buf;
  54. buf = new BufferedReader(new InputStreamReader(System.in));
  55. System.out.print("请输入成绩:");
  56. str = buf.readLine();
  57. int num = Integer.parseInt(str);
  58. num = num/10;
  59. switch(num){
  60. case 10:
  61. case 9:
  62. System.out.println("优");break;
  63. case 8:
  64. System.out.println("良");break;
  65. case 7:
  66. System.out.println("中");break;
  67. case 6:
  68. System.out.println("及格");break;
  69. default:
  70. System.out.println("不及格");break;
  71. }
  72. /*自我评测,虽然功能实现,但是如果出现输入1000、-22等这类不在范围的数值时,
  73. 应该提示所输入成绩不在范围之内。在得到的输入值后面加入判断语句,以用来规范值域。
  74. */
  75. }
  76. //从键盘输入一个0~100之间的成绩,输出相应等级和上一个类似;
  77. // A 85~100,B 70~84,C 60~69,D 0~59;
  78. /*
  79. 我有两种想法,1用所输入数值直接加5之后除10取整;2方法也差不多就是用四舍五入
  80. 但是我后面一想好像都是一回事,愚蠢。暂时想到这一种;
  81. */
  82. public void fct4_2() throws IOException
  83. {
  84. String str;
  85. BufferedReader buf;
  86. buf = new BufferedReader(new InputStreamReader(System.in));
  87. System.out.print("请输入成绩:");
  88. str = buf.readLine();
  89. int logic;
  90. int num = Integer.parseInt(str);
  91. num+=5;
  92. num = num/10;
  93. switch(num){
  94. case 10:
  95. case 9:
  96. System.out.println("A");break;
  97. case 8:
  98. logic = num>=85?1:2;
  99. //想到这我感觉我写不出来了,如果不加个判断我实在想不出有啥方法能给他分出来
  100. //然后我加了一个if
  101. if(logic==1){
  102. System.out.println("A");break;
  103. }else if(logic==2){
  104. System.out.println("B");break;
  105. }
  106. break;
  107. case 7:
  108. System.out.println("B");break;
  109. case 6:
  110. System.out.println("C");break;
  111. default:
  112. System.out.println("D");break;
  113. }
  114. }
  115. //编写一个程序,输出1~100之间所有既可以被3整除,又可被七整除的数。
  116. //这个没有限制条件,我先想到了直接用for循环和if条件判断。
  117. public void fct4_3(){
  118. for(int i=1;i<101;i++){
  119. if(i%3==0 && i%7==0){
  120. System.out.println(i);
  121. }
  122. }
  123. }
  124.  
  125. //编写一个java应用程序,在键盘上输入数n,计算并输出1!+2!+...+n!的结果
  126. //我先想到了一个输入的n作为循环条件,阶乘的累加设一个sum,dup;
  127. public void fct4_4(){
  128. int n,sum=0,dup=1;
  129. System.out.print("请输入所求阶乘项数:");
  130. Scanner reader = new Scanner(System.in);
  131. n = reader.nextInt();
  132. for(int i=1;i<n+1;i++){
  133. dup*=i;
  134. sum+=dup;
  135. }
  136. System.out.println("和为"+sum);
  137. }
  138. //在键盘上输入数n,编程计算sum=1-1/2!+1/3!-...(-1)^(n-1)1/n!;
  139. //n,item,sum,一个像flag的-1判定值, for循环和if;
  140. public void fct4_5(){
  141. int n,dup=1,flag=-1;
  142.  
  143. float item,sum=0;
  144. System.out.print("请输入一个整数:"); //缺少输入验证
  145. //如果输入的数值不符合条件用do while循环操作
  146. Scanner reader = new Scanner(System.in);
  147. n = reader.nextInt();
  148. for(int i=1;i<n+1;i++){
  149. dup*=i;
  150. item=(float)Math.pow(flag,i-1)*1/dup; //原本想用个乘方运算的符号可是java里面好像没有用了pow。
  151. sum +=item;
  152. }
  153. System.out.print(sum);
  154. }
  155. //求出所有的水仙花数
  156. public void fct4_6(){
  157. int ge,shi,bai,sum;
  158. for(int i =101;i<1000;i++){
  159. ge = i%10;
  160. shi = i%100/10;
  161. bai = i/100;
  162. sum=ge*ge*ge+shi*shi*shi+bai*bai*bai;
  163. if(i==sum){
  164. System.out.println(i);
  165. }
  166. }
  167. //写完这个感觉写的好low,哈哈,用了太多空间,时间复杂度也很高毕竟
  168. //循环了所有的范围内,如果做一些算法可以减少很多浪费的时间,可以不用判断明显的数值比如111,222,333,444...等等
  169. }
  170.  
  171. //从键盘输入一个整数,判断一个数是否是一完全数,所有因数包括1不包括自身的和等于该数自身的数。如28
  172. //我想了想应该是超过一半就一定不可匹配了。循环到自身一半就可以了。
  173. public void fct4_7(){
  174. int n,sum=0;
  175. System.out.print("请输入一个整数:");
  176. Scanner reader = new Scanner(System.in);
  177. n = reader.nextInt();
  178. for(int i=1;i<=n/2;i++){
  179. if(n%i==0){
  180. sum+=i;
  181. }
  182. }
  183. if(sum==n){
  184. System.out.print("是完全数");
  185. }else{
  186. System.out.print("不是完全数");
  187. }
  188. }
  189. //计算并输出一个整数各位数字之和。
  190. public void fct4_8(){
  191. int n,sum=0;
  192. System.out.print("请输入一个整数:");
  193. Scanner reader = new Scanner(System.in);
  194. n = reader.nextInt();
  195. System.out.print("输入的数值是"+n);
  196. do{
  197. sum+=n%10;
  198. n/=10;
  199. }while(n!=0);
  200. System.out.print("各位数字之和是"+sum);
  201. }
  202.  
  203. //从键盘上输入一个浮点数,然后将该浮点数的整数部分和小树部分分别输出。
  204. public void fct4_9(){
  205. float n,decimal;
  206. int zhengshu;
  207. int pointIndex;
  208. System.out.print("请输入一个整数:");
  209. Scanner reader = new Scanner(System.in);
  210. n = reader.nextFloat();
  211. zhengshu=(int)n;
  212. decimal=n-zhengshu;
  213. System.out.println("zhengshu="+zhengshu+"小数是"+decimal);
  214. //方法二:转换成字符串,用方法split按小数点前后分割
  215. String str = String.valueOf(n); //将float类型转换成字符串
  216. String[] ary = str.split("\\.");
  217. System.out.println(n + "整数部分为:" + ary[0]);
  218. System.out.println(n + "小数部分为:" + "0." + ary[1]);
  219.  
  220. //方法三:同样转换成字符串,用方法indexOf标记小数点位置
  221. pointIndex = str.indexOf('.');
  222. System.out.println(n + "的整数部分为:" + str.substring(0,pointIndex));
  223. System.out.println(n + "的小数部分为:" + "0" + str.substring(pointIndex,str.length()));
  224.  
  225. //https://blog.csdn.net/frozen122/article/details/111303303
  226. //看到这里还涉及到了一个正数和负数的问题。而且负数的整数部分和小数部分取还是不太一样的。
  227. //我还是缺失了很多东西啊!!
  228. }
  229. //设有一条长为3000m的绳子,每天减去一半,问需要几天时间,绳子的长度会短于5m;
  230. public void fct4_10(){
  231. int day=0;
  232. float length=3000;
  233. while(true){
  234. day++;
  235. length/=2;
  236. if(length<6){
  237. break;
  238. }
  239. }
  240. System.out.println("需要"+day+"天");
  241. }
  242.  
  243. //输出一个左上三角,  1 3 6 10 15
  244.   // 2 5 9 14
  245.   // 4 8 13
  246.   // 7 12
  247.   // 11
  248. public void fct4_11(){
  249. //我堪称此操作为最骚操作;
  250. System.out.print("1 3 6 10 15\n" +
  251. "2 5 9 14\n" +
  252. "4 8 13\n" +
  253. "7 12\n" +
  254. "11\n");
  255.  
  256. int i,j; //i行,j列
  257. int stic,orgin=1; //初值;
  258. int liecha=2,hangcha=1; //行差值,列差值;
  259. for(i=5;i>0;i--){
  260. stic=orgin;
  261. for(j=i;j>0;j--){
  262. System.out.print(orgin+" ");
  263. orgin+=liecha++;
  264. }
  265. System.out.println();
  266. liecha=2+hangcha;
  267. orgin=stic+hangcha++;
  268. }
  269. }
  270. //lie差和hang茶有差一的微妙关系利用这个微妙的关系,
  271.  
  272. }

Java程序设计基础第4章习题与自总的更多相关文章

  1. Java程序设计基础作业目录(作业笔记)

    持续更新中............. Java程序设计基础笔记 • [目录] 我的大学笔记>>> 第1章 初识Java>>> 1.1.4 学生成绩等级流程图练习 1 ...

  2. Java程序设计基础笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java程序设计基础作业目录(作业笔记) 第1章 Java程序设计基础笔记 • [第1章 初识Java] 第2章 Java程序 ...

  3. Java程序设计基础项目总结报告

    Java程序设计基础项目总结报告 20135313吴子怡 一.项目内容 运用所学Java知识,不调用Java类库,实现密码学相关算法的设计,并完成TDD测试,设计运行界面. 二.具体任务 1.要求实现 ...

  4. 20145322第九周JAVA程序设计基础学习总结

    20145322第九周JAVA程序设计基础学习总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联机数据库的标准规范.它定义一组标准类与接口,应用程序需要 ...

  5. Java程序设计基础

    Java程序设计基础

  6. 【Java】《Java程序设计基础教程》第一章学习

    一.Java概述 1.介绍了Java语言的由来 2.Java语言的特点:简单.面向对象.分布式.高效解释执行.健壮.安全.结构中立.可移植.高效率.多线程.动态 3.Java语言的实现机制,引入虚拟机 ...

  7. Java程序设计基础笔记 • 【第1章 初识Java】

    全部章节   >>>> 本章目录 1.1 程序的概念及Java语言介绍 1.1.1 生活中的程序 1.1.2 计算机程序 1.1.3 算法和流程图 1.1.4 实践练习 1.2 ...

  8. Java程序设计基础笔记 • 【第5章 循环结构】

    全部章节   >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...

  9. Java程序设计基础笔记 • 【第10章 数组】

    全部章节   >>>> 本章目录 10.1 数组概述 10.1.1 数组优势 10.1.2 Java中的数组 10.1.3 数组的分类 10.2 一维数组 10.2.1 数组的 ...

随机推荐

  1. 微信小程序(一)-工具创建和结构配置说明 Stable Build

    按装前特别说明: windows最好下载32位的,不然用到用到后面就出现"网络连接失败",然后就登录不上去了,打不开编辑器了! 问题 : 微信开发者工具网络连接失败, " ...

  2. DRF 视图家族及路由层补充

    目录 视图家族 一.views视图类 1.APIView类 2.GenericAPIView类(generics中) 二.mixins类:视图辅助工具 1.RetrieveModelMixin 2.L ...

  3. docker ssh秘钥免密登录

    一.概述 有一台跳板机,已经实现了免密登录后端服务器.但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器. 虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置 ...

  4. Codeforces Global Round 13

    比赛地址 A(水题) 题目链接 题目: 给出一个\(01\)序列,有2种操作:1.将某个位置取反:2.询问\(01\)序列中第\(k\)大的数 解析: 显然维护1的数目即可 #include<b ...

  5. Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

  6. 阅读源码,HashMap回顾

    目录 回顾 HashMap简介 类签名 常量 变量 构造方法 tableSizeFor方法 添加元素 putVal方法 获取元素 getNode方法 总结 本文一是总结前面两种集合,补充一些遗漏,再者 ...

  7. docker nacos 集群部署

    1.准备机器3台 192.168.101.14 192.168.101.15 192.168.101.16 2.初始化sql(如果我们要搭建集群的话,那么肯定是不能用内嵌的数据库,不然数据无法共享.集 ...

  8. 打造综合性智慧城市之朔州开发区 3D 可视化

      前言 近几年,我国智慧城市建设步伐也不断加快,党中央和国务院也更加注重智慧园区的建设与发展,智慧园区建设与园区产业发展相结合,向着创新化.生态化发展,更加注重高新技术.绿色环保型等产业的发展,将管 ...

  9. 【odoo14】第十四章、CMS网站开发

    第十四章.CMS网站开发** Odoo有一个功能齐全的内容管理系统(CMS).通过拖放功能,你的最终用户可以在几分钟内设计一个页面,但是在Odoo CMS中开发一个新功能或构建块就不是那么简单了.在本 ...

  10. 前瞻|Amundsen的数据血缘功能

    目前,Amundsen并不支持表级别和列级别的数据血缘功能,也没有办法展示数据的来龙去脉. 作为Amundsen一项非常核心的功能,Lineage功能早已经提上日程,并进入设计与研发阶段.本位将展示此 ...