蓝桥杯校园选拔之位平方和
2018-02-09 20:32
267 查看
把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为:位平方和。
对新得到的整数仍然可以继续这一运算过程。
比如,给定整数为4,则一系列的运算结果为:
16,37,58,89,....
本题的要求是,已知一个整数x,求第n步的运算结果。
数据格式要求:
输入,两个整数x n,中间以空格分开。表示求x的第n步位平方和。其中,x,n都大于0,且小于100000。
输出,一个整数,表示所求结果。
例如,
输入:
4 3
则程序应该输出:
58
再例如,
输入:
1314 10
则程序应该输出:
20
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
对新得到的整数仍然可以继续这一运算过程。
比如,给定整数为4,则一系列的运算结果为:
16,37,58,89,....
本题的要求是,已知一个整数x,求第n步的运算结果。
数据格式要求:
输入,两个整数x n,中间以空格分开。表示求x的第n步位平方和。其中,x,n都大于0,且小于100000。
输出,一个整数,表示所求结果。
例如,
输入:
4 3
则程序应该输出:
58
再例如,
输入:
1314 10
则程序应该输出:
20
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
#include<iostream> using namespace std; void Separation(int number, int bit, int separation[]); int sumOfSquares(int number, int bit, int separation[]); int main() { int separation[100000]; int number, n,a,bit=0; cin >> number >> n; a = number; while (n--) { memset(separation, 0, sizeof(separation)); while (a) { bit++; a = a / 10; } Separation(number, bit, separation); a=number=sumOfSquares(number, bit, separation); } cout << number<<endl; system("pause"); return 0; } //分离 void Separation(int number,int bit,int separation[]) { for (int i = 0; i < bit;i++) { separation[i] = (int)(number / pow(10, i)) % 10; } } //求位平方和 int sumOfSquares(int number,int bit,int separation[]) { int sum=0; for (int i = 0; i < bit;i++) { sum += pow(separation[i],2); } return sum; }
相关文章推荐
- 蓝桥杯校园选拔之杨辉三角
- 蓝桥杯校园选拔之调和级数
- 蓝桥杯校园选拔之循环素数
- 蓝桥杯校园选拔之X^X
- 蓝桥杯校园选拔之汉字相加
- 第五届蓝桥杯Java语言C组_位平方和
- 2013第四届蓝桥杯 C/C++本科A组 排它平方数(2个数相乘为大数,大数位标记的方法)
- 黑马程序员-第五届蓝桥杯校内选拔试题和 答案
- 2015-年校内选拔-蓝桥杯C-(A组)赛题-dfs-7对数字
- 蓝桥杯第二次选拔c.Sumsets
- 蓝桥杯-排他平方数
- 蓝桥杯-凑平方数
- 第四届蓝桥杯C++A组 排它平方数
- 2015-年校内选拔-蓝桥杯C-(A组)赛题-dfs-数独
- 【第四届蓝桥杯预选赛】排他平方数
- 2016年蓝桥杯决赛 凑平方数
- 第七届蓝桥杯决赛JavaA组第二题_凑平方数
- 2016年蓝桥杯决赛第二题凑平方数
- 学校蓝桥杯选拔题分鱼
- 蓝桥杯校园练习