解题思路:

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

注意事项:

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


基本数据类型又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);
		}
		
		
		
	}

}
点赞(1)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论