码迷,mamicode.com
首页 > 编程语言 > 详细

C语言之基本算法30—数组的灵活应用(一个正整数的各位数字平方和)

时间:2015-07-12 15:44:17      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:c语言   数组   一个整数各位平方和   

//数组的灵活应用!
/*
=====================================================
题目:求任意输入一个正整数各位数字的平方和,显示如下:
如输入1234,则显示 1*1+2*2+3*3+4*4=30
=====================================================
*/
#include<stdio.h>
void main()
{
int a[10];
int n,c,i,sum;
printf("输入正整数:\nn=");
scanf("%d",&n);
while(n>0&&n<1e17)
{
c=0;
while(n>0)
{
a[c++]=n%10;
n/=10;
}
sum=0;
for(i=0;i<c;i++)
sum+=a[i]*a[i];
for(i=c-1;i>0;i--)
printf("%d*%d+",a[i],a[i]);
printf("%d*%d=%d",a[0],a[0],sum);
printf("\n=============================\n输入下一个正整数:\n(退出请输入‘N‘!)\nn=");
scanf("%d",&n);
}
}
/*
===============================================================
评:

关键要分析a[c++]的作用!令c=0;c++实际上是一个计数功能,目的是说明这个数是几

位数,c=1是1位数,c=2是2位数。然后用a[c]表示该位数,用循环实现n每次除以10,

所以它的余数就是c位置上的数字a[c];当n<10时,n/10==0(这是因为n是int型的),即循

环结束!


在输出时用到一个技巧,就是先输出c-1位平方和,因为可以用循环,你想想,为什么

不直接将c位全部输出呢?因为这会导致等号前多一个加号,而且无论如何,sum是要

单独输出的,所以将c位置的平方与sum项一同输出!总之,这是数组算法里面比较重

要的题目。读者应多加练习!

================================================================
*/

版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言之基本算法30—数组的灵活应用(一个正整数的各位数字平方和)

标签:c语言   数组   一个整数各位平方和   

原文地址:http://blog.csdn.net/lzx19901012/article/details/46850139

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!