C++ 为什么这个循环每次向sqdNumber_结果输出0?
我试图找到整数平方中每个数字的和,对于输入到sqdnumber的任何整数,它输出0到sqdnumber_结果,我不知道为什么 另外,这是通过edX实现的,但我已经被这个问题困扰了一周左右,我已经研究了很多不同的主题,但没有发现任何对我有用的东西 我用代码块来写这个,但是系统测试使用了代码板C++ 为什么这个循环每次向sqdNumber_结果输出0?,c++,loops,integer,C++,Loops,Integer,我试图找到整数平方中每个数字的和,对于输入到sqdnumber的任何整数,它输出0到sqdnumber_结果,我不知道为什么 另外,这是通过edX实现的,但我已经被这个问题困扰了一周左右,我已经研究了很多不同的主题,但没有发现任何对我有用的东西 我用代码块来写这个,但是系统测试使用了代码板 void squaredSum(int sqdnumber,int &sqdNumber_result) { for (int i=1; i>1; i++){ if (sqdnumber
void squaredSum(int sqdnumber,int &sqdNumber_result) {
for (int i=1; i>1; i++){
if (sqdnumber >= ((10^(i-1))-1)){
int rem = (sqdnumber % (10^i));
int rem1 = (sqdnumber % (10^(i-1)));
int temp = (rem - rem1);
sqdNumber_result = sqdNumber_result + (temp^2);
}
else{
break;
}
}
}
<>我是新的编码,只是学习在C++中做循环。
这是循环的第一次迭代,我让他们的系统给我一个实际的输出(我已经写了20多次,重写了20多次),但它没有给我一个有意义的输出
<>我不会问,但我的智慧是我的智慧。 < P> > C++,<代码> ^ <代码>是,而不是第n个幂。为此,在C++中应该使用.< /p>
,<代码> ^ <代码>是,而不是第n个幂。为此,您应该使用。
for语句不循环。如果for语句没有循环,则条件为false。第一次迭代时,条件为假。有两个问题:for (int i=1; i>1; i++){
此循环根本不会循环,因为从未满足条件i>1
第二个问题是使用
^
执行电源操作。C++中的<代码> ^ < />代码不是幂运算,它是<代码>异或> /Cux>运算符。
因此,乍一看答案是使用std::pow
函数来计算幂。但是,如果指数是整数,使用它可能会有缺点。原因是pow
不能保证在整数幂次下完美工作
将此视为
建议只使用10次幂的简单值数组进行查找。有两个问题:
for (int i=1; i>1; i++){
此循环根本不会循环,因为从未满足条件i>1
第二个问题是使用
^
执行电源操作。C++中的<代码> ^ < />代码不是幂运算,它是<代码>异或> /Cux>运算符。
因此,乍一看答案是使用std::pow
函数来计算幂。但是,如果指数是整数,使用它可能会有缺点。原因是pow
不能保证在整数幂次下完美工作
将此视为
<> P>建议使用一个简单的值为10的数组,并进行查找。 < P>你说你是C++的新手,所以我试图在不使用for循环的情况下得到一个解决方案,并尽量使它尽可能简单。 让我知道这是否有帮助
//Code to calculate the sum of each digit squared//
#include<iostream>
using namespace std;
int main ()
{
int integer1,integer2,sum, square;
cout<<"Please enter two integers"<<endl;
cin>>integer1>>integer2 ;
cout<<"The sum of your integers is"<<" "<<endl;
sum = (integer1+integer2);
cout<<sum<<endl;
cout<<"The square of your sum is"<<" "<<endl;
square = (sum*sum);
cout<<square<<endl;
return 0;
}
//计算每个数字平方和的代码//
#包括
使用名称空间std;
int main()
{
整数1,整数2,和,平方;
coutinteger2;
CUT> P>你说你是C++新手,所以我试着在不使用for循环的情况下找到一个解决办法,并尽量使它变得简单。
让我知道这是否有帮助
//Code to calculate the sum of each digit squared//
#include<iostream>
using namespace std;
int main ()
{
int integer1,integer2,sum, square;
cout<<"Please enter two integers"<<endl;
cin>>integer1>>integer2 ;
cout<<"The sum of your integers is"<<" "<<endl;
sum = (integer1+integer2);
cout<<sum<<endl;
cout<<"The square of your sum is"<<" "<<endl;
square = (sum*sum);
cout<<square<<endl;
return 0;
}
//计算每个数字平方和的代码//
#包括
使用名称空间std;
int main()
{
整数1,整数2,和,平方;
coutinteger2;
提示OP:通过运行调试器并单步执行该函数,这将非常容易看到。OP注意:通过运行调试器并单步执行该函数,这将非常容易看到。谢谢,我不知道这一点,要使用pow函数,我需要使用#include correct?@JamesChristie,如果这回答了问题,那就是po或者你只需要将这个值乘以它本身…我猜这会比更一般的pow()更快
函数。谢谢,我没有意识到这一点,要使用我需要使用的pow函数#include correct?@JamesChristie,如果这回答了问题,礼貌地接受它作为答案。或者你只需将该值乘以它本身……我猜这将比更一般的pow()
函数更快。以及对它的解释“为什么这个循环每次向sqdNumber_结果输出0?”是哪里?你的答案似乎完全不相关。“为什么这个循环每次向sqdNumber_结果输出0?”的解释是哪里?你的答案似乎完全不相关。