我试图找到整数平方中每个数字的和,对于输入到sqdnumber的任何整数,它都会将0输出到sqdnumber_result,我不知道为什么。
此外,这是通过edX完成的,但我已经在这个问题上被困了一周左右,我研究了很多不同的主题,但没有发现任何对我有用的东西。
我用代码块写了这个,但测试它的系统使用了代码板
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次并重写了它),但它并没有给我一个有意义的输出。
我不会问,但我已经无计可施了。
在C++中,^
是xor运算符,而不是n次方。为此,您应该使用pow。
for语句不循环。第一次迭代的条件为false
有两个问题:
for (int i=1; i>1; i++){
这个循环根本不会循环,因为条件i>1
永远不会满足。
第二个问题是使用^
进行功率操作。C++中的^
不是幂运算符,它是exclusive-or
运算符。
因此,乍一看,答案是使用std::pow
函数来计算幂。然而,如果指数是整数,使用它可能会有缺点。原因是pow
是不能保证对整数幂完美工作。
将此视为使用pow()进行积分指数的危险
建议只使用一个10次方的简单值数组并进行查找。
你说你是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;
}