一、打印五行五列的三角形
如下图:
#include<stdio.h>
int main()
{
for (int i = 1;i <= 5; i++)
{
for (int j = i; j <= 5; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
#include<stdio.h>
int main()
{
for (int i = 1;i <= 5; i++)
{
for (int j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
二、打印九九乘法表
如下图:
思路:在第一题中正三角形的基础上进行修改
#include<stdio.h>
int main()
{
for (int i = 1;i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
printf("%d*%d=%d ",j,i,i*j);
}
printf("\n");
}
return 0;
}
三、输出100以内的所有质数
质数:除了1和它自身外,不能被其他自然数整除的数
1.试除法
试除法就是把每一个数都拿它之前的所有数来除一遍,如果出现余数为0,则证明不是素数。
例如:要验证99是否为素数,就拿1-98来给99除。当除到3时发现余数是0,所以99不是素数
#include<stdio.h>
int main()
{
int i,j = 0;
for(i = 2; i <= 100; i++)
{
for(j = 2;j <= i;j++)
{
if(i % j == 0)
{
break; //如果这里i能被j整除,说明i除了1和自己本身以外还有j这个因子,内循环结束,试除下一个数字
}
}
if(i == j)
{
printf("%d ",i);
}
}
return 0;
}
2.试除开平方法
一个非素数可以拆成两个数相乘,这两个数的其中一个一定小子等于这个非素数的开平方 例如:20可以拆成4x5,4是小子等于根号20的。
如果出现了这两个数有其中一个大于该数的开平方,证明该数是素数
例如:19只能拆成1和19,19是大于根号19的
#include<stdio.h>
#include<math.h>
int main()
{
int i,j = 0;
for(i = 2; i <= 100; i++)
{
for(j = 2; j <= i; j++)
{
if(i % j == 0)
{
break;
}
}
if(j > sqrt(i)){
printf("%d ",i);
}
}
return 0;
}
输出如下:
四、计算数字
1的一次方+2的二次方+...+5的五次方结果是多少?
#include<stdio.h>
#include<math.h>
int GetNum(int a,int b)
{
int num = 1;
while(a)
{
a--;
num = num * b;
}
return num;
}
int main()
{
int i,j = 0;
int sum = 0;
for(i = 1;i<=5;i++)
{
for(j = 1;j<=5;j++)
{
if(i == j)
{
sum = sum + GetNum(i,j);
}
}
}
printf("%d",sum);
return 0;
}
五、和为15的数字
找出0~1000之内,每一位数字之和等于15的数字
例如:78,168
#include<stdio.h>
#include<math.h>
int main()
{
for(int i = 10;i <= 99; i++)
{
int ge = i % 10;
int shi = i / 10;
if(ge + shi == 15)
{
printf("%d ",i);
}
}
for(int j = 100; j <= 999; j++)
{
int a = j % 10;
int b = j /10 % 10;
int c = j / 100;
if(a + b + c == 15)
{
printf("%d ",j);
}
}
return 0;
}