首页 > 解决方案 > 嘿,这里是初学者

问题描述

如何将迭代变量与编辑文本中的输入变量匹配,我想创建 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)
                 }
             }

         }
     });

标签: androidandroid-studio

解决方案


要确认用户输入是否为 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
               }

     }
 });

推荐阅读