宋哥哥


私信TA

用户名:630591905

访问量:8286

签 名:

等  级
排  名 847
经  验 3634
参赛次数 3
文章发表 9
年  龄 0
在职情况 学生
学  校 迦南魔法学院
专  业

  自我简介:

解题思路:

用数组存放每一个位的数字,最后相加

注意事项:

既然用到了强制类型转换,我们就总结一下:


基本数据类型又8种,哪8种呢?记不到的拍拍头。


byte   short  int  double  long  float  char   boolean


在四则运算中(加,减,乘,除)

1、如果两个操作数中有一个是double类型,另一个就会转换为double类型;
2、否则,如果有一个操作数是float,另一个就会转化为float;
3、否则,如果有一个操作数是long,另一个就会转换为long;
4、否则,两个操作数都将转换为int类型。 


byte b1 = 10;

byte b2 = 11;

//错误: 不兼容的类型: 从int转换到byte可能会有损失

//否则,两个操作数都将转换为int类型

byte b3 = b1 + b2 //错误

byte b3 = (byte)(b1 + b2); //正确


short s1 = 1;
s1 = s1 + 1; 

//错误: 不兼容的类型: 从int转换到short可能会有损失


short s2 = 1;
s2 += 1; // 等同于short s2 = (short)(s2 + (short)1); //正确


还有一些对象是不可以被强制转换的,String和Integer之类就不可以哦




参考代码:


Scanner in=new Scanner(System.in);
		int arr[]=new int[100];
		
		
		while(in.hasNext())
		{
			double n=in.nextDouble();
			int sum=0;
			for(int i=0;i<100;i++)
			{
				arr[i]=(int)(n%10);            //我血的教训,最开始我是(int)n%10,这是会先把n变为整型,那么精度就丢失了
				n/=10;                         //(int)(n%10),这样才能满足所有样例。要注意呀!!
				sum=arr[i]+sum;
			}
			
			System.out.println(sum);
		}
		
		
		
	}

}
 

0.0分

1 人评分

  评论区

  • «
  • »