蓝桥杯中的完美数问题
来源:互联网 发布:二维码生成算法 .net 编辑:程序博客网 时间:2024/06/05 10:00
总结:这个题目很简单,之所以发出来的目的是为了说明一个问题,就是有时候在代码逻辑没有问题的情况下在考试系统上面交不上去代码,那么问题有可能就是宏定义变量的范围问题了
题目内容:
如果有一正整数n,其真因数的总和等于n,则称之为完美数。
例如以下几个数都是完美数:
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
求小于n的所有完美数.
输入描述
输入一个正整数n
输出描述
输出小于n的完美数,按升序输出,每个数据占一行
输入样例
10
输出样例
6
分析:这个题目就是要先将输入的数字的所有约数求出来,然后放入一个数组,如果这些约数的和正好
等于这个数本身,那么这个数就满足条件,计数的变量自加1
先看看我在vc上面编译通过的代码:
#include<stdio.h>#define M 1000
int main(){int n;int i,j,k = 0,l;int a[M],b[M] = {0};int sum = 0;scanf("%d",&n);for(i = 2;i < n; i++){k = 0;a[i] = i;for(j = 1;j < a[i]; j++)if(a[i]%j == 0){b[k] = j;k++;}for(l = 0;l < k; l++){//printf("%d ",b[l]);sum = sum + b[l];}//printf("\nsum = %d\n",sum);//printf("\n");if(sum == i)printf("%d\n",i);sum = 0;}return 0;}
这个代码开起来没有问题,因为题目中的三个数字都可以显示出来,但是交到系统里面就不对了,为此我有仔细检查了问题~之后我只做了一个很小的改动,然后就ok了~~~
其实就是把#define M 1000改成了#define M 10000
哈哈哈~~~~
0 0
- 蓝桥杯中的完美数问题
- 问题九十三:完美数
- 格子取数问题,完美洗牌算法
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- python中的汉语乱码问题完美解决方案
- 对于js浮点数误差问题 完美解决办法
- 蓝桥杯训练中的特别的幸运数问题
- 求完美数
- SELECT FD_ZERO FD_ISSET
- APK不用su的方式来获取ROOT权限
- 程序员最值得关注的10个C开源项目
- 小米将投10亿美金打造移动内容生态
- etc配置文件解读——inittab
- 蓝桥杯中的完美数问题
- My97DatePicker日历控件的简单用法
- sqlserver字段类型详解
- 通过GC输出分析内存泄露问题
- 省市下拉
- 设计模式-代理模式
- 深入浅出MFC学习笔记(第8章:Document----View深入探讨)
- 二叉搜索树的后序遍历序列 【微软面试100题 第九题】
- 对于GC回收优化转贴文章的一点补充