笔记08 课后习题

1 编写一个应用程序,实现猜数字的游戏

 

//编写一个应用程序,实现猜数字的游戏
public class Guess {
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);		//创建一个Scanner对象;
		
		int a = (int) (100*Math.random()); 		//定义一个随机数;		
		System.out.println("请输入一个0---100以内的整数;");
		for( ; true; ){
			int x = s.nextInt();				//从键盘输入一个0---100以内的整数;
			if(x < 0 || x >= 100){
				System.out.println("您输入的结果不符合要求,请重新输入:");
			}else if (x == a ){
				System.out.println("您猜对了,这个数就是:" + a);
				break;
			}else if(x > a){
				System.out.println("您输入的结果过大,请重新输入:");
			}else if(x < a){
				System.out.println("您输入的结果太小了,请重新输入:");
			}					
		}
	}
}

 

2 用双重递归完成1!+2!+3!+ ...... +10!

 

public class Recall {
		public static void main( String[] args ) {			
			System.out.println("1! + 2! + 3! + ... + 10!" + " = " + m(10));
		}
				
		//编写一个 m() 方法, 调用双重递归 m(n) = f(n) + m( n - 1 ) 完成 m(n) = f(n) + f(n-1) + ... + f(1);
		public static int m(int n){
			if( n == 1 ){
				return 1;
			}else{
				return f(n) + m( n - 1 );
			}
		}
		//编写方法,利用递归求出 f(n) = n! 即f(n) = n * f(n-1) ;
		public static  int f( int n ){
			if( n == 1 ) {
				return 1;	//末端,它是递归出口。
			}else{
				return  n * f( n - 1 );  //在此出现了调用方法本身的现象。
			}
		}		
}

3 编写一个JAVA应用程序,实现十进制整 与 二进制、八进制、十六进制的转换

 

//编写一个JAVA应用程序,实现十进制整数转换成二进制、八进制、十六进制整数,并输出转换后的结果

public class Trans {
	public static void main(String args[]){
		
		int a = (int)(100*Math.random()) ;		//	产生一个0-100之间的随机整数数a;
		System.out.println("产生一个随机数a = " + a );
		
		System.out.println("转换成2进制数a2 = " + trans2(a) );
		System.out.println("转换成8进制数a8 = 0" + trans8(a) );
		System.out.println("转换成8进制数a16 = 0x" + trans16(a) );
	}
	public static String trans2(int a){
		String a2 = "";
		int t = 0;
		while( true ){
			t = a%2;
			a2 = t + a2 ;
			a = a/2; 
			if(a==0){
				break;
			}
		}
		//	System.out.println("转换成2进制数a2 = " + a2 );
		return a2;
	}
	
	public static String trans8(int a){
		String a8 = "";
		int t = 0;
		while( true ){
			t = a%8;
			a8 = t + a8;
			a = a/8; 
			if(a==0){
				break;
			}
		}
		//	System.out.println("转换成2进制数a2 = " + a2 );
		return a8;
	}
	public static String trans16(int a){
		String a16 = "";
		String t1 = "";
		int t = 0;
		while(true){
			
			t = a%16;
			switch(t){
				case 10 :	t1 = "A";	break;
				case 11 :	t1 = "B";	break;
				case 12 :	t1 = "C";	break;
				case 13 :	t1 = "D";	break;
				case 14 :	t1 = "E";	break;
				case 15 :	t1 = "F";	break;
				default : 	t1 = "" + t;
			}
			a16 = t1 + a16;
			a = a/16; 
			if(a==0){
				break;
			}
		}
		//	System.out.println("转换成2进制数a2 = " + a2 );
		return a16;
	}
}


 

 


 

基于html+python+Apriori 算法、SVD(奇异值分解)的电影推荐算法+源码+项目文档+算法解析+数据集,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 电影推荐算法:Apriori 算法、SVD(奇异值分解)推荐算法 电影、用户可视化 电影、用户管理 数据统计 SVD 推荐 根据电影打分进行推荐 使用 svd 模型计算用户对未评分的电影打分,返回前 n 个打分最高的电影作为推荐结果 n = 30 for now 使用相似电影进行推荐 根据用户最喜欢的前 K 部电影,分别计算这 K 部电影的相似电影 n 部,返回 K*n 部电影进行推荐 K = 10 and n = 5 for now 根据相似用户进行推荐 获取相似用户 K 个,分别取这 K 个用户的最喜爱电影 n 部,返回 K*n 部电影进行推荐 K = 10 and n = 5 for now Redis 使用 Redis 做页面访问次数统计 缓存相似电影 在使用相似电影推荐的方式时,每次请求大概需要 6.6s(需要遍历计算与所有电影的相似度)。 将相似电影存储至 redis 中(仅存储 movie_id,拿到 movie_id 后还是从 mysql 中获取电影详细信息), 时间缩短至:93ms。 十部电影,每部存 top 5 similar movie 登录了 1-6 user并使用了推荐系统,redis 中新增了 50 部电影的 similar movie,也就是说,系统只为 6 为用户计算了共 60 部电影的相似度,其中就有10 部重复电影。 热点电影重复度还是比较高的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值