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

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

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

package tincode;
import java.io.*;
import java.util.*;
/**
*
* @author Administrator
*/
public class Steven {
public static void main(String[] args) throws IOException
{
Steven st = new Steven();
st.fct4_11();
}
//Fibonacci数列双元
public void fct1()
{
int p=0,n=1; //p代表前一个数,n代表后一个数
System.out.println(p+""+n);
for(int i =0;i<17;i++) //前16项
{
n+=p;
p=n-p;
System.out.println(n);
}
}
//判断Fibonacci数,从键盘输入,判断是否; 暂时想不到更好的方法去查找是否斐波那契数列;
public boolean fct2() throws IOException
{
int a = 0,b=1,n,num;
String str;
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个正整数");
str=buf.readLine();
num = Integer.parseInt(str);
while(b<num){
n=a+b;
a=b;
b=n;
}
if(num==b){
System.out.println(num+"是Fibonacci数");
return true;
}
System.out.println(num+"不是Fibonacci数");
return false;
} //从键盘输入一个0~100之间的成绩,输出相应的等级,分为5个等级优、良、中、及格和不及格;
public void fct4_1() throws IOException
{
String str;
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入成绩:");
str = buf.readLine();
int num = Integer.parseInt(str);
num = num/10;
switch(num){
case 10:
case 9:
System.out.println("优");break;
case 8:
System.out.println("良");break;
case 7:
System.out.println("中");break;
case 6:
System.out.println("及格");break;
default:
System.out.println("不及格");break;
}
/*自我评测,虽然功能实现,但是如果出现输入1000、-22等这类不在范围的数值时,
应该提示所输入成绩不在范围之内。在得到的输入值后面加入判断语句,以用来规范值域。
*/
}
//从键盘输入一个0~100之间的成绩,输出相应等级和上一个类似;
// A 85~100,B 70~84,C 60~69,D 0~59;
/*
我有两种想法,1用所输入数值直接加5之后除10取整;2方法也差不多就是用四舍五入
但是我后面一想好像都是一回事,愚蠢。暂时想到这一种;
*/
public void fct4_2() throws IOException
{
String str;
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入成绩:");
str = buf.readLine();
int logic;
int num = Integer.parseInt(str);
num+=5;
num = num/10;
switch(num){
case 10:
case 9:
System.out.println("A");break;
case 8:
logic = num>=85?1:2;
//想到这我感觉我写不出来了,如果不加个判断我实在想不出有啥方法能给他分出来
//然后我加了一个if
if(logic==1){
System.out.println("A");break;
}else if(logic==2){
System.out.println("B");break;
}
break;
case 7:
System.out.println("B");break;
case 6:
System.out.println("C");break;
default:
System.out.println("D");break;
}
}
//编写一个程序,输出1~100之间所有既可以被3整除,又可被七整除的数。
//这个没有限制条件,我先想到了直接用for循环和if条件判断。
public void fct4_3(){
for(int i=1;i<101;i++){
if(i%3==0 && i%7==0){
System.out.println(i);
}
}
} //编写一个java应用程序,在键盘上输入数n,计算并输出1!+2!+...+n!的结果
//我先想到了一个输入的n作为循环条件,阶乘的累加设一个sum,dup;
public void fct4_4(){
int n,sum=0,dup=1;
System.out.print("请输入所求阶乘项数:");
Scanner reader = new Scanner(System.in);
n = reader.nextInt();
for(int i=1;i<n+1;i++){
dup*=i;
sum+=dup;
}
System.out.println("和为"+sum);
}
//在键盘上输入数n,编程计算sum=1-1/2!+1/3!-...(-1)^(n-1)1/n!;
//n,item,sum,一个像flag的-1判定值, for循环和if;
public void fct4_5(){
int n,dup=1,flag=-1; float item,sum=0;
System.out.print("请输入一个整数:"); //缺少输入验证
//如果输入的数值不符合条件用do while循环操作
Scanner reader = new Scanner(System.in);
n = reader.nextInt();
for(int i=1;i<n+1;i++){
dup*=i;
item=(float)Math.pow(flag,i-1)*1/dup; //原本想用个乘方运算的符号可是java里面好像没有用了pow。
sum +=item;
}
System.out.print(sum);
}
//求出所有的水仙花数
public void fct4_6(){
int ge,shi,bai,sum;
for(int i =101;i<1000;i++){
ge = i%10;
shi = i%100/10;
bai = i/100;
sum=ge*ge*ge+shi*shi*shi+bai*bai*bai;
if(i==sum){
System.out.println(i);
}
}
//写完这个感觉写的好low,哈哈,用了太多空间,时间复杂度也很高毕竟
//循环了所有的范围内,如果做一些算法可以减少很多浪费的时间,可以不用判断明显的数值比如111,222,333,444...等等
} //从键盘输入一个整数,判断一个数是否是一完全数,所有因数包括1不包括自身的和等于该数自身的数。如28
//我想了想应该是超过一半就一定不可匹配了。循环到自身一半就可以了。
public void fct4_7(){
int n,sum=0;
System.out.print("请输入一个整数:");
Scanner reader = new Scanner(System.in);
n = reader.nextInt();
for(int i=1;i<=n/2;i++){
if(n%i==0){
sum+=i;
}
}
if(sum==n){
System.out.print("是完全数");
}else{
System.out.print("不是完全数");
}
}
//计算并输出一个整数各位数字之和。
public void fct4_8(){
int n,sum=0;
System.out.print("请输入一个整数:");
Scanner reader = new Scanner(System.in);
n = reader.nextInt();
System.out.print("输入的数值是"+n);
do{
sum+=n%10;
n/=10;
}while(n!=0);
System.out.print("各位数字之和是"+sum);
} //从键盘上输入一个浮点数,然后将该浮点数的整数部分和小树部分分别输出。
public void fct4_9(){
float n,decimal;
int zhengshu;
int pointIndex;
System.out.print("请输入一个整数:");
Scanner reader = new Scanner(System.in);
n = reader.nextFloat();
zhengshu=(int)n;
decimal=n-zhengshu;
System.out.println("zhengshu="+zhengshu+"小数是"+decimal);
//方法二:转换成字符串,用方法split按小数点前后分割
String str = String.valueOf(n); //将float类型转换成字符串
String[] ary = str.split("\\.");
System.out.println(n + "整数部分为:" + ary[0]);
System.out.println(n + "小数部分为:" + "0." + ary[1]); //方法三:同样转换成字符串,用方法indexOf标记小数点位置
pointIndex = str.indexOf('.');
System.out.println(n + "的整数部分为:" + str.substring(0,pointIndex));
System.out.println(n + "的小数部分为:" + "0" + str.substring(pointIndex,str.length())); //https://blog.csdn.net/frozen122/article/details/111303303
//看到这里还涉及到了一个正数和负数的问题。而且负数的整数部分和小数部分取还是不太一样的。
//我还是缺失了很多东西啊!!
}
//设有一条长为3000m的绳子,每天减去一半,问需要几天时间,绳子的长度会短于5m;
public void fct4_10(){
int day=0;
float length=3000;
while(true){
day++;
length/=2;
if(length<6){
break;
}
}
System.out.println("需要"+day+"天");
} //输出一个左上三角,  1 3 6 10 15
  // 2 5 9 14
  // 4 8 13
  // 7 12
  // 11
public void fct4_11(){
//我堪称此操作为最骚操作;
System.out.print("1 3 6 10 15\n" +
"2 5 9 14\n" +
"4 8 13\n" +
"7 12\n" +
"11\n"); int i,j; //i行,j列
int stic,orgin=1; //初值;
int liecha=2,hangcha=1; //行差值,列差值;
for(i=5;i>0;i--){
stic=orgin;
for(j=i;j>0;j--){
System.out.print(orgin+" ");
orgin+=liecha++;
}
System.out.println();
liecha=2+hangcha;
orgin=stic+hangcha++;
}
}
//lie差和hang茶有差一的微妙关系利用这个微妙的关系, }

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. Docker备份迁移

    目录 Docker备份迁移 1.容器保存为镜像 2.镜像打包成压缩文件 3.把压缩文件恢复成镜像 Docker备份迁移 1.容器保存为镜像 将已经装好各种软件的容器再次打包为镜像,这样下次直接装这个镜 ...

  2. PHP Webshell List

    目录 基础类 编码替换 无关键字函数类型 躲避检测记录 MySQL写入一句话 基础类 很容易被扫描.检测出来 <?php @eval($_GET['phpcode']);?> <?p ...

  3. javaScript操作cookie出现同名key

    引文: 网上查找js操作cookie文章发现百度千篇一律全是同样的代码,使用过程中发现一个bug,设置cookie导致出现多个同名key的cookie,官网cookie文档内未提及,下文将标出问题点, ...

  4. Shell脚本控制docker容器启动顺序

    1.遇到的问题 在分布式项目部署的过程中,经常要求服务器重启之后,应用(包括数据库)能够自动恢复使用.虽然使用docker update --restart=always containerid能够让 ...

  5. 通过穷举法快速破解excel或word加密文档最高15位密码

    1.打开文件 2.工具 --- 宏 ---- 录制新宏 --- 输入名字如 :aa 3.停止录制 ( 这样得到一个空宏 ) 4.工具 --- 宏 ---- 宏 , 选 aa, 点编辑按钮 5.删除窗口 ...

  6. Keytool 工具使用

    Keytool 管理私钥仓库(keystore)和与之相关的 X.509 证书链(用以验证与私钥对应的公钥),也可以用来管理其他信任实体 keytool 将密钥和证书存储在一个所谓的密钥仓库中,缺省的 ...

  7. DataFocus小学堂|客户分析之复活客户分析

    复活客户分析 什么是"复活客户"?如何进行"复活客户分析"呢?今天,我们借助DataFocus系统,来了解一种简单的复活客户分析. 1.何为复活客户 复活客户, ...

  8. Java 在PPT中添加文本水印的简易方法(单一/平铺水印)

    [前言] 在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即在幻灯片中心位置水印以单个文本字样显示,但通过一定方法也可以添加多行(平铺)文本水印效果,即在幻灯片中 ...

  9. 快速了解C# 8.0中“可空引用类型(Nullable reference type)”语言特性

    Visual C# 8.0中引入了可空引用类型(Nullable reference type),通过编译器提供的强大功能,帮助开发人员尽可能地规避由空引用带来的代码问题.这里我大致介绍一下可空引用类 ...

  10. 2018ICPC南京I. Magic Potion

    题目: 题意:n个士兵打m个怪兽,每个士兵只能打一个,但是如果有魔法药水就可多打一个问最多能打几个. 题解:如果没有魔法药就是一道裸二分图,因为现在有魔法要我们可以这样建图: 多建一个i+n的节点存放 ...