一、求100以内的完美数(除了本身以外的所有因数和,等于本身)
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i,j;
for(i=1;i<101;i++)
{
int sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d\n",i);
}
}
return 0;
}
-----------------------------------
ubuntu@ubuntu:5.1$ gcc 6.c
ubuntu@ubuntu:5.1$ ./a.out
6
28
二、
#include <stdio.h>
int main(int argc, const char *argv[])
{
int g,m;
for(g=0;g<100;g++) //g公鸡个数,m母鸡个数,x小鸡个数
{
for(m=0;m<100;m++)
{
int x=3; //这里每次回来小鸡必须从3开始,或者从0开始,严谨一点
while(x<100) //但是结果一样,
{
if((g*5+m*3+x/3==100)&&(g+m+x==100)) //满足两个条件,100元,100只
{
printf("%d\t%d\t%d\n",g,m,x); //x/3的意思是求有几个1块钱,比如6
break; //个小鸡
} //printf能执行的话就可以break
else //跳出while,执行第二个for的循环
{
x+=3;
}
}
}
}
return 0;
}
----------------------------------
ubuntu@ubuntu:5.1$ gcc 7.c
ubuntu@ubuntu:5.1$ ./a.out
0 25 75
4 18 78
8 11 81
12 4 84
三、实现十位wen波那契数列
1 1 2 3 5 8 13 ······
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i=1,j=1,k; //首先我先把第一个第二个数给他定义了,1,1然后输出
for(k=1;k<=6;k++) //第一个第二个用printf()
{
printf("%d\t%d\t",i,j); //这里的i,j转换,列举两个数就看出来了
i=i+j;
j=i+j; //后面的if只是为了分行
if(k%2==0)
{
printf("\n");
}
}
return 0;
}
-----------------------------
ubuntu@ubuntu:5.1$ ./a.out
1 1 2 3
5 8 13 21
34 55 89 144
四、买一件上衣59,买一件裤子70,如果成套买120,假设我买了m个上衣和n个裤子花了多少钱
#include <stdio.h>
int main(int argc, const char *argv[])
{
int m,n,k,sum;
printf("输入两个数:");
scanf("%d%d",&m,&n);
if(m>n)
{
sum=(m-n)*59+n*120;
}
else if(m<n)
{
sum=(n-m)*70+m*120;
}
else if(m==n)
{
sum=m*120;
}
printf("%d\n",sum);
return 0;
}
-------------------------
ubuntu@ubuntu:5.1$ gcc 9.c
ubuntu@ubuntu:5.1$ ./a.out
输入两个数:3 3
360
ubuntu@ubuntu:5.1$ ./a.out
输入两个数:3 5
500
ubuntu@ubuntu:5.1$ ./a.out
输入两个数:5 3
478