求各位数字的平方和

该博客探讨了一个程序,用于计算10到1000000之间的正整数每位数字的平方和。程序通过分离每个数字并计算其平方来实现,作者建议使用switch语句优化内存使用。


1.程序分析:

本程序的关键之处在于会分离10-1000000以内的正整数的每一位数,例如199可分离为 1,9,9。具体分离方法如下代码所示,其实本程序最好能使用switch判断语句,这样的话不用进行过多的判断,以此耗费内存。


2.源代码:

/*
	任意输入一个正整数n(0<n<1000000),求它的各位数字的平方和 

*/
#include<iostream>
using namespace std;
 
int main()
{
	
	int n = 1;
	int sum = 0;
	int a,b,c,d,e,f;
	while(cin>>n)
	{
		
		if(n>0 && n<10)
		{
			sum += n * n;
			cout<<"n的平方和为:"<<sum<<endl;
			cout<<"--------------------------------"<<endl;
		}
		else if(n>=10 && n<100)
		{
			a = n /10;
			b = n %10;
			sum += a*a + b*b;
			cout<<"n的平方和为:"<<sum<<endl;
			cout<<"--------------------------------"<<endl;
		}
		else if(n>=100 && n<1000)
		{
			a = n/100;
			b = (n/10) %10;
			c = n % 10;
			sum += a*a+b*b+c*c;
			cout<<"n的平方和为:"<<sum<<endl;
			cout<<"--------------------------------"<<endl;
		}
		else if(n>=1000 && n<10000)
		{
			a = n/1000;
			b = (n/100) %10;
			c = (n % 100) /10;
			d = (n % 100) %10;
			sum += a*a+b*b+c*c+d*d;
			cout<<"n的平方和为:"<<sum<<endl;
			cout<<"--------------------------------"<<endl;
		}
		else if(n>=10000 && n<100000)
		{
			a = n/10000;
			b = (n % 10000) /1000;
			c = ((n % 10000) % 1000) /100;
			d = (((n % 10000) % 1000) % 100) / 10;
			e = d = (((n % 10000) % 1000) % 100) % 10;
			sum += a*a+b*b+c*c+d*d+e*e;
			cout<<"n的平方和为:"<<sum<<endl;
			cout<<"--------------------------------"<<endl;
		}
		else if(n>=100000 && n<1000000)
		{
			a = n/1000000;
			b =(n % 1000000) /100000;
			c =((n % 1000000) %100000) /10000;
			d =(((n % 1000000) %100000) %10000) /1000;
			e =((((n % 1000000) %100000) %10000) %1000) /100;
			f =(((((n % 1000000) %100000) %10000) %1000)) %100;
			sum += a*a+b*b+c*c+d*d+e*e+f*f;
			cout<<"n的平方和为:"<<sum<<endl;
			cout<<"--------------------------------"<<endl;
		}
		
		
	}
	return 0;
	
	
}



3.运行结果:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值