我试图找到整数平方的每个数字的总和,对于输入到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次左右),但它并没有给我一个有意义的输出。
我不会问,但我的机智已经结束了。
答案 0 :(得分:5)
在C ++中,^
是xor operator,而不是第n次幂。为此,您应该使用pow。
答案 1 :(得分:3)
for语句不循环。第一次迭代时条件为假
答案 2 :(得分:1)
有两个问题:
for (int i=1; i>1; i++){
此循环根本不会循环,因为永远不会满足条件i>1
。
第二个问题是使用^
进行电源操作。 C ++中的^
不是幂运算符,而是exclusive-or
运算符。
乍一看,答案是使用std::pow
函数来计算能力。但是,如果指数是整数,则可能存在使用它的缺点。原因是pow
不保证完全适用于整数幂。
见dangers of using pow() for integral exponents
建议只使用功能为10的简单数组并进行查找。
答案 3 :(得分:-3)
你说你是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;
}