搞不定,就是有问题。求200-300之间的数,且满足三个数字之和为12 之积为42.
public class RunNian {
public static void main(String[] args) {
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
int ge=0,shi=0,bai=0,ji,he;
//int a;
// int ji=0;
//使用for循环
for(int a=200;a<300;a++) {
//取出百位数
bai=a/100;
shi=a/10%10;
ge=a/10;
}
ji=ge*shi*bai;
System.out.println("三个数之积为:"+ji);//计算三个数字之积
//计算三个数字之和
he=ge+shi+bai;
System.out.println("三个数之和为:"+he);
//如果积等于42并且和为12,则将满足条件的数输出
if(ji==42&he==12){
System.out.println(a);
}
}
}
正在回答 回答被采纳积分+1
同学你好,1、同学取出个位数的表达式有误,注意取出个位:i%10;比如i=231,对10取余,余下的数就是个位数,就可以得到个位1。而同学是直接这样取出个位 ge = a / 10; 比如i=231 231/10 结果是23,取出的并不是个位数。
2、注意要将if判断放在for循环中,对每次的ji与he进行判 断,而不是放在for循环外面,只对最后一次ji与he的值进行判断。
修改后代码如下
public class RunNian {
public static void main(String[] args) {
// 定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
int ge = 0, shi = 0, bai = 0, ji, he;
// int a;
// int ji=0;
// 使用for循环
for (int a = 200; a < 300; a++) {
// 取出百位数
bai = a / 100;
shi = a / 10 % 10;
//ge = a / 10;
ge = a % 10;
ji = ge * shi * bai;
//System.out.println("三个数之积为:" + ji);// 计算三个数字之积
// 计算三个数字之和
he = ge + shi + bai;
//System.out.println("三个数之和为:" + he);
// 如果积等于42并且和为12,则将满足条件的数输出
if (ji == 42 & he == 12) {
System.out.println(a);
}
}
}
}
祝学习愉快!
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星