100
任务描述
本关需要你求出分数序列前n
项之和。
相关知识
你需要使用到scanf
函数和循环语句来完成本关任务。
scanf
函数名: scanf
功 能:执行格式化输入 。
用 法:
int scanf(char *format[,argument,...]);
scanf()
函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。 其调用格式为:
scanf("<格式化字符串>",<地址表>);
scanf()
函数返回成功赋值的数据项数,出错时则返回EOF
。 其控制串由三类字符构成:
分数序列
本关涉及到的分数序列规律如下:2/1,3/2,5/3,8/5,13/8,21/13…
。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
求出分数序列前n
项之和,n
由scanf
函数输入;
效果如下:
输入: 20
。 输出: n=20,sum=32.660261
。
注意:本关小数的定义变量需要使用double
类型,否则可能会有精度问题。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始吧!
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
long n,i;
double mol=2.0,den=1.0,sum=0.0,t;
scanf("%ld",&n);
for(i=1;i<=n;i++){
sum+=mol/den;
t=mol;
mol=mol+den;
den=t;
}
printf("n=%ld,sum=%lf",n,sum);
/********** End **********/
}
100
任务描述
经过上一关的求和,感觉还可以吧,那么本关就需要你求数列的第n
项及前n
项之和。
相关知识
本关和上一关知识点是相同,能通过上一关,相信这一关你也没问题?
让我们放松一下,我来给个代码,请找出不正确的地方。
#include
int main()
{
int i,r=0,n,sum=0,c=0;
double j;
scanf("%d",&n);
for(i=1;i
{
int r1=i;
for(j=1;r1!=0;j++)
{
r=r1%((int)pow(10,j));
sum=sum+r/((int)pow(10,j-1));
r1=r1-r;
}
if(!(sum%15))
c++;
sum=0;
}
printf("%d",c);
return 0;
}
找出不正确的地方可以贴在评论区哦~。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
求数列的第n
项及前n
项之和。
数列如下: f1=f2=1
fn=3fn-1+2fn-2
n>2
效果如下:
输入: 5
。 输出: 61
85
。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始吧!
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
int n,sum=2,i,fn;
scanf("%d",&n);
int a[n];
a[1]=a[2]=1;
for(i=3;i<=n;i++){
a[i]=3*a[i-1]+2*a[i-2];
sum+=a[i];
}
printf("%d\n%d",a[n],sum);
/********** End **********/
}
100
任务描述
本关需要你计算正整数的数字之积。
相关知识
数字之积,是乘积吗?这里的数字之积不是乘积的意思,数字之积是一个数乘以各个数位上的数之积。
例如: 一个数268
,它的数字之积为2x6x8=96
。
那么用C
语言怎么编写呢? 这里给个范例:
#include
void main()
{
int a,s;
s=1;
printf("请输入一个整数");
scanf("%d",&a);
while (a>0)
{
s=s*(a % 10);
a=a/10;
}
printf("a=%d",s);
}
大家可以根据题目所需自由发挥。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
计算正整数num
的各位上的数字之积。
效果如下:
输入:2583
。 输出:240
。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始吧!
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
int n,mask=1,t,i=1,num=1;
scanf("%d",&n);
t=n;
while(t>0){
t/=10;
mask*=10;
i++;
}
for(i=i-1;i>0;i--){
num=num*(n%10);
n/=10;
}
printf("%d",num);
/********** End **********/
}
100
任务描述
本关需要你编写程序输出100-1000
中的水仙花数。
相关知识
水仙花数
水仙花数是指一个n
位数(n≥3
),它的每个位上的数字的 n
次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153
)。
//三个数的立方和加起来等于三个数的组合
153是一个水仙花数,因为153=1^3+5^3+3^3.
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
求出所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
int n,i,sum=0,t;
for(i=100;i<1000;i++){
sum=0;
t=i;
while(t>0){
sum=sum+pow(t%10,3);
t/=10;
}
if(sum==i){
printf("%d ",sum);
}
}
/********** End **********/
}
100
任务描述
本关需要你打印出以下的杨辉三角形 效果如下:
1
1 1
1 2 1
1 3 3 1
相关知识
本关涉及到杨辉三角形,让我们来简单理解一下杨辉三角形吧。
杨辉三角形
是二项式系数在三角形中的一种几何排列。 简单的说一下就是两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方
=x的平方+2xy+y的平方
,这样系数就是1
,2
,1
这就是杨辉三角的其中一行,立方,四次方,运算的结果看看各项的系数,你就明白其中的道理了。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
打印出杨辉三角形(要求打印8
行)。
效果如下: 输入:8
。
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始你的任务吧!
#include
#include
int main()
{
// 请在此添加你的代码
/********** Begin *********/
int cao(int a,int b);
int i,j,n=13;
while(n>12)
scanf("%d",&n);
for(i=0;i
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
int i,j,k,n=0,a[14][14];
scanf("%d",&n);
for(i=1;i<=n;i++)
a[i][1] = a[i][i] = 1;
for(i=3;i<=n;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<=n;i++){
for(k=1;k<=n-i;k++)
printf(" ");
for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
/********** End **********/
}