C语言之基本算法38—格式化输出10000以内的全部完数
//穷举法!
/*
==================================================================
题目:求10000以内的全部完数,统计数量并以例如以下格式输出:
28=1+2+4+7+14.
注:完数是除了本身外。其值等于包括1的全部因子之和!
如:28的全部因子是:1,2,4,7,28,除了28外其他因子的和=28,故28是完数!
==================================================================
*/
#include<stdio.h>
#define N 10000
int ws(int a)
{
int i=1;
int sum=0;
while(i<a) //不包括a,由于完数的因子必须小于它本身!
{
if(a%i==0)
sum+=i;
i++;
}
if(sum==a)
return 1;
else return 0;
}
void main()
{
int n=2,i,j,k=0,a[100],shu=0;
printf("%d以内的完数有:",N);
while(n<=N)
{
if(ws(n))
{
for(i=1;i<n;i++)
if(n%i==0)
a[k++]=i;
printf("\n%d: %-4d=%d",shu+1,n,a[0]);
for(j=1;j<k;j++)
printf("+%d ",a[j]);
printf(".\n");
shu++;
k=0;
}
n++;
}
printf("\n一共%d个",shu);
printf("\n");
}
/*
======================================================================
评:
这道题难点在于输出的格式,完数的推断是一个简单问题,甚至能够用for循环来
实现!
可是要输出题目要求的格式。就必须先求出其全部因子,保存在预先定义的
数组中,先输出n=a[0],紧接着通过for循环输出其余的+因子。在输出"."。
必须注意要一个一个输出,就是推断+输出+又一次初始化后在算下一个n。直到n>N循
环结束(注意不能用for循环。否则会反复输出N次)。
========================================================================
*/
C语言之基本算法38—格式化输出10000以内的全部完数的更多相关文章
- Python自动化--语言基础2--运算符、格式化输出、条件语句、循环语句、列表、元组
运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符 算术运算符 % 取模(余数) // 取相除的整数部分 / (5/2=2.5) 比较运算符 == 等于 ! ...
- python自动化--语言基础二运算符、格式化输出、条件语句、循环语句、列表、元组
运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符. 算术运算符 % 取模(余数) // 取相除的整数部分 / (5/2=2.5) 比较运算符 == 等于 ...
- Golang的格式化输出fmt.Printf
本文来源:Go by example. Golang的格式化输出 和 C语言的标准输出基本一样,但是增加了一些针对Golang语言的特有数据结构的格式化输出方式. 一下就是实例: package ma ...
- C语言中格式化输出的转换说明的fldwidth和precision解析
首先说什么是C语言的格式化输出,就是printf和它的几个变种(grep -E "v?(sn|s|f)printf").像这些函数都有一个参数format,format中可以加点转 ...
- Debug格式化输出----基于C语言
Debug格式化输出----基于C语言 1. 使用宏实现 举例: #include <stdio.h> #define ECHO_COLOR_NONE "\033[0;0m&qu ...
- Go语言从入门到放弃(三) 布尔/数字/格式化输出
本章主要介绍Go语言的数据类型 布尔(bool) 布尔指对或者错,也就是说bool只有两个值, True 或 False 两个类型相同的值可以使用比较运算符来得出一个布尔值 当两个值是完全相同的情况下 ...
- Go 语言 fmt.Sprintf (格式化输出)
Printf().Sprintf().Fprintf() 函数的区别用法是什么? 都是输出格式化字符串,只是输出到的目标不一样: Printf() 是把格式化字符串输出到标准到标准输出(一般是屏幕,可 ...
- go语言基础之格式化输出
1.fmt包的格式化输出输入 格式说明 格式 含义 %% 一个%字面量 %b 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数 %c 字符型.可以把输入的数字按照A ...
- C语言 printf格式化输出,参数详解
有关输出对齐 int main(int argc, char* argv[]){ char insertTime[20] = {"1234567890"}; double in ...
随机推荐
- poj 2288 Islands and Bridges (状压dp+Tsp问题)
这道题千辛万苦啊! 这道题要涉及到当前点和前面两个点,那就设dp[state][i][j]为当前状态为state,当前点为i,前一个点为j 这个状态表示和之前做炮兵那题很像,就是涉及到三个点时,就多设 ...
- 20130912.Windows下常用命令的使用(不断更新)
Win+R================================ cmd => 命令行 lpksetup => 弹出安装或者卸载Windows显示语言 ipconfig => ...
- UE4在VS2013中各个编译配置代表意义
UE4中有个各式各样的编译配置,都怎么个意思呢? 对原文的理解和翻译. https://docs.unrealengine.com/latest/INT/Programming/Development ...
- 用了一天的时间,linux下expect实现ssh自己主动登录server记,歧视下网上各种抄来抄去残段子
由于要对客户方的快30个项目进行特别有顺序的重新启动,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的能够. 没有一段是能够正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自己主 ...
- 夜· 启程
有写博客的念头,还是在去年的时候. 那天早上我非常兴奋,也非常忐忑.由于我立即要去JD面试.JD大家都知道的,对我这样的没见过世面的人来说.这就是个高高在上殿堂. 结果我的满腔热血.被一张面试题卷给浇 ...
- HDOJ 5299 Circles Game 圆嵌套+树上SG
将全部的圆化成树,然后就能够转化成树上的删边博弈问题.... Circles Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- hpuoj--1122-- HH的随机数(数据去重)
1122: HH的随机数 时间限制: 1 Sec 内存限制: 128 MB 提交: 476 解决: 75 [提交][状态][讨论版] 题目描述 HH想在学校中请一些同学一起做一项问卷调查,为了实验 ...
- [JZOJ 5852] [NOIP2018提高组模拟9.6] 相交 解题报告 (倍增+LCA)
题目链接: http://172.16.0.132/senior/#main/show/5852 题目: 题目大意: 多组询问,每次询问树上两条链是否相交 题解: 两条链相交并且仅当某一条链的两个端点 ...
- EL与JSTL学习(二)——JSTL技术
1.JSTL概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能. jstl出现的目的同el一样也是要代替jsp ...
- HTML&CSS——网站注册页面
1.表单标签 所有需要提交到服务器端的表单项必须使用<form></form>括起来! form 标签属性: action,整个表单提交的位置(可以是一个页面,也可以是一个后 ...