69,380
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main()
{
int i,j;
int sum=0;
for(i=1;i<=200;i++)
{
for(j=1;j<=i;j++)
{
if(i%j==0)//把每个能被i整除的数都加到一个累加器sum里
{
sum=sum+j;
}
}
if(i!=1)//当i不为1时,每次总是会把i自己加上,比如i=6,循环为1+2+3+6,所以必须减掉自己
{
sum=sum-i;
}
if(sum==i)//这里就是把每个能被整除的数加上和i自己比较,相同为完数,打印输出
{
printf("%d\n",i);
}
sum=0;
}
system("pause");
return 0;
}
#include<stdio.h>
#define MAX_LEN 200
int main(void)
{
/*j表示因子,因为数字1肯定是一个因子了,所以j从2开始.
s表示已经找到的因子和,同样已知1为因子了,所以s初值为1.
*/
int i, j = 2, s = 1;
/*数组中存放每一个因子, index作为数组的索引*/
int arr[MAX_LEN], index = 1;
/*1肯定是一个因子,因此先将1作为因子保存到数组中*/
arr[0] = 1;
for(i = 1; i <= 1000; i++) {
/*找因子的过程*/
while(j <= i/2) {
if(i % j == 0) {/*如果j是i的因子*/
arr[index++] = j; /*将j保存到数组当中*/
s = s + j; /*将j加到s中*/
}
j++; /*判断下一个数是不是i的因子*/
}
if(s == i) { /*因子和与当前数i相等,则它为完数,输出*/
printf("%d=", i);
for(j = 0; j < index-1; j++) { /*这里j临时充当数组下标进行输出*/
printf("%d+", arr[j]);
}
printf("%d\n",arr[j]);
}
s = 1; /*因子和复位*/
index = 1; /*数组索引复位*/
j = 2; /*第一个因子复位*/
}
return 0;
}
#include<stdio.h>
int main()
{
double i,height,sum=0;
int n;
printf("please input height:");
scanf("%lf",&height);
printf("please input n:");
scanf("%d",&n);//输入与n的类型不匹配,改了就好了
for(i=1;i<=n;i++)
{
sum=sum+height;
height=height/2.0;
}
printf("distance is %.1f\n",sum);
printf("height is %.1f\n",height);
system("pause");
return 0;
}
#include<stdio.h>
bool work(int,int,int);
int main(void)
{
for(int i=1;i<1000;i++)
{
if(work(i/2,i,0))
printf("\n");
}
return 0;
}
bool work(int a,int n,int sum)
{
bool flag;
if(n==1) {printf("1=1");return true;}
if(n%a==0) sum+=a;
if(a==1&&sum==n)
{
printf("%d=1",n);
return true;
}
else if(a==1&&sum!=n)
return false;
flag=work(a-1,n,sum);
if(flag&&n%a==0)
{
printf("+%d",a);
}
return flag;
}
#include<stdio.h>
#define MAX_LEN 200
int main(void)
{
int i, j = 2, s = 1;
int arr[MAX_LEN], index = 1;
arr[0] = 1;
for(i = 1; i <= 200; i++) {
while(j <= i/2) {
if(i % j == 0) {
arr[index++] = j;
s = s + j;
}
j++;
}
if(s == i) {
printf("%d=", i);
for(j = 0; j < index-1; j++) {
printf("%d+", arr[j]);
}
printf("%d\n",arr[j]);
}
s = 1; /*复位*/
index = 1;
j = 2;
}
return 0;
}
#include<stdio.h>
#define MAX_LEN 200
int main(void)
{
int i, j = 1, s = 1;
int arr[MAX_LEN], index = 1;
arr[0] = 1;
for(i = 1; i <= 200; i++) {
while(j <= i/2) {
if(i % j == 0) {
arr[index++] = j;
s = s + j;
}
j++;
}
if(s == i) {
printf("%d=", i);
for(j = 0; j < index-1; j++) {
printf("%d+", arr[j]);
}
printf("%d\n",arr[j]);
}
s = 1; /*复位*/
index = 1;
j = 1;
}
return 0;
}
#include<stdio.h>
int main()
{
int sum = 0;
for( int i = 1; i <= 200; i++ )
{
for( int j = 1; j <= i; j++ )
{
if( i%j == 0 )
{
sum = sum + j;
}
}
if( i != 1 )
{
sum = sum - i;
}
if( sum == i )
{
printf( "%d\n",i );
}
sum = 0;
}
return 0;
}
#include<stdio.h>
int main()
{
double i, height, sum = 0;
int n;
printf("please input height: ");
scanf("%lf",&height);
sum = height;
printf("please input n:");
/*scanf("%lf",&n);*/
scanf("%d", &n);
for(i = 2; i <= n; i++) {
sum = sum + height;
height = height / 2.0;
}
printf("distance is %.1f\n", sum);
printf("height is %.1f\n", height / 2);
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int sum = 0;
for( int i = 1; i <= 200; i++ )
{
for( int j = 1; j <= i; j++ )
{
if( i%j == 0 )
{
sum = sum + j;
}
}
if( i != 1 )
{
sum = sum - i;
}
if( sum == i )
{
cout<<i<<endl;
}
sum = 0;
}
return 0;
}
int main()
{
int sum = 0;
for( int i = 1; i <= 200; i++ )
{
for( int j = 1; j <= i; j++ )
{
if( i%j == 0 )
{
sum = sum + j;
}
}
if( i != 1 )
{
sum = sum - i;
}
if( sum == i )
{
cout<<i<<endl;
}
sum = 0;
}
return 0;
}