android - 嘿,这里是初学者
问题描述
如何将迭代变量与编辑文本中的输入变量匹配,我想创建 armstrong 数
它是这样的
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer one = Integer.parseInt(edt1.getText().toString());
Integer two = Integer.parseInt(edt2.getText().toString());
Integer three = Integer.parseInt(edt3.getText().toString());
Integer num1 = (one * one * one);
Integer num2 = (two * two * two);
Integer num3 = (three * three * three);
Integer sum = (num1 + num2 + num3);
tv2.setText(sum);
for (int i = 0; i < 5; i++) {
if (i==1){
(1 == 153)
}
}
}
});
解决方案
要确认用户输入是否为 armstrong 数字,您无需迭代。您只需要计算单个数字的立方和并确认它在算术上是否等于组合时数字的数字的值。
因此,您的代码将被重构如下所示以解决问题
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer one = Integer.parseInt(edt1.getText().toString());
Integer two = Integer.parseInt(edt2.getText().toString());
Integer three = Integer.parseInt(edt3.getText().toString());
// convert input text to three fields to one String
String joinedText = "" + one + two + three;
Integer num1 = (one * one * one);
Integer num2 = (two * two * two);
Integer num3 = (three * three * three);
Integer sum = (num1 + num2 + num3);
// you must setText as String
tv2.setText(Integer.toString(sum));
if(sum == Integer.parseInt(joinedText)){
// This is an armstrong number
}else {
// This is not an armstrong number
}
}
});
推荐阅读
- c# - 拖动时旋转和调整窗口大小
- docker - 如何将 Nunit 的结果从 Windows 容器显示到 TeamCity?
- amazon-web-services - 有哪些 AWS 服务可用于 react native?
- c# - 从不同的 AssetBundle 加载 Prefab 和 AnimationClip
- java - 使用springboot时如何创建JsonDeserializer,将null设置为JSON中等于“”的所有Java对象字段?
- java - SonarQube 未捕获未关闭的 FileInputStream
- php - PHP 7.1 返回类型的标量数组
- python - 如何在将所有静态列保留在数据框中的同时,使用列中的列名和值翻转数据框?
- django - Django Admin列表页面:自定义操作按钮(url)问题,出了什么问题?
- odoo - 布尔字段的 Sql 约束