设计一个程序,通过引用来计算一个非零整数的每一位上的数字的平方和,结果的符号由该整数的符号决定。
例如:156 的结果为 12+52+62 = 62;-156的结果为 -(12+52+62) = -62。
提示:引用仅仅是它所绑定目标的一个别名。通过取余(%)和整除(/)操作来分离一个整数每一位上的数字。在分离数字之前要先去掉该整数的符号,不能带着符号进行取余操作。
设计一个程序,通过引用来计算一个非零整数的每一位上的数字的平方和,结果的符号由该整数的符号决定。
例如:156 的结果为 12+52+62 = 62;-156的结果为 -(12+52+62) = -62。
提示:引用仅仅是它所绑定目标的一个别名。通过取余(%)和整除(/)操作来分离一个整数每一位上的数字。在分离数字之前要先去掉该整数的符号,不能带着符号进行取余操作。
【以下回答由 GPT 生成】
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int num;
cout << "Enter a non-zero integer: ";
cin >> num;
if (num == 0) {
cout << "The input should be a non-zero integer." << endl;
return 1;
}
int sum = 0;
int temp = abs(num); // get the absolute value of the input
while (temp > 0) {
int digit = temp % 10; // get the last digit
sum += pow(digit, 2); // add the square of the digit to the sum
temp = temp / 10; // remove the last digit
}
if (num < 0) {
sum = -sum; // change the sum to negative if the input is negative
}
cout << "The sum of the squares of the digits is: " << sum << endl;
return 0;
}