第3关:求素数之和
本关需要你使用循环语句来计算正整数m
以内的素数之和。
具体任务如下:
求给定正整数m
以内的素数之和。 函数fun
返回求出的该值。
例如: 当m
=20
时,20
以内的素数有2,3,5,7,11,13,17,19
,则函数返回值为77
。
效果如下: 输入:20
。 输出:y=77
。
#include <stdio.h>
int fun(int m)
{
int sum=0,i,j;
for (i=2;i<=m;i++){
for(j=2;j<i;j++){
if(i%j==0){
break;
}
}
if(i == j){
//printf("%d\n",j);
sum =sum+j;
}
}
return sum;
}
int main()
{
int x, y;
scanf("%d", &x);
y=fun(x);
printf("y=%d\n",y);
return 0;
}
第2关:求立方和
本关需要你使用循环语句求一个四位数的各位数字的立方和。
求一个四位数的各位数字的立方和。 函数fun
返回求出的和值。
例如:1234
的各位数字的立方和为:1^3+2^3+3^3+4^3=100
fun
函数应当返回100
。
效果如下: 输入:1234
。 输出:k=100
。
#include <stdio.h>
int fun(int n)
{
int g,s,b,q;
g = n%10;//个位
s = n/10%10;//十位
b = n/100%10;//百位
q = n/1000;//千位
return s = g*g*g+s*s*s+b*b*b+q*q*q;
}
int main()
{
int n,k;
scanf("%4d",&n);
k=fun(n);
printf("k=%d\n",k);
return 0;
}
第1关:组合排列计算题
具体任务如下:
学生一起买小吃,共花钱50
元,其中每个大学生花3
元,每个中学生花2
元,每个小学生花1
元。现输入学生总人数30
,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生数为0
的解)?
例如: 输入:30
,即求总人数为30
时各种不同的解,输出如下,sum
表示总的解数。
#include <stdio.h>
int main()
{
int n;
int sum=0;
scanf("%d",&n);
for(int i=1;i<n;i++){
for(int j = 1; j<n-i;j++){
int m=30-j-i;
if(3*i+2*j+m==50){
printf("大学生%d,中学生%d,小学生%d\n",i,j,m);
sum +=1;
}
}
}
printf("sum=%d",sum);
}
如果文章对你有帮助的话,可不可以点个赞鼓励以下我!! ^o^ 谢谢了!!!