n个a 之值,其中a是一个数字,n表示a的位数,a、n由键盘输入
AC代码C:
#include<stdio.h>
#include<math.h>
int main()
{
int n;
double a,sum,totle_sum;
printf("输入a的值以及n的值");
scanf("%lf %d",&a,&n);
for(int i=0;i<n;i++)
{
sum+=a*pow(10,i);
totle_sum+=sum;
}
printf("总和是:%lfn",totle_sum);
}
11.求
∑
n
=
1
20
n
!
n=1∑20n! (即求1!+2!+3!+4!+…+20!)
在C语言标准中,double类型的取值范围通常是-1.7E308到1.7E308之间,而 int类型的取值范围通常是-32768到32767之间(这些范围可能会因为不同的编译器或平台而有所不同)。因此,如果需要处理比较大的数值,使用 double类型可以更好地满足需求。
AC代码C:
#include<stdio.h>
int main()
{
double sum=0;
for(int i=0;i<=20;i++)
{
double single_sum = 1;
for(int j = i;j>0;j--)
{
single_sum*=j;
}
sum+=single_sum;
}
printf("阶乘和为:%lfn",sum);
}
12.求和
∑
k
=
1
100
k
∑k=1100k +
∑
k
=
1
50
k
2
∑k=150k2+
∑
k
=
1
10
1
k
sumlimits_{k=1}^{10}{frac{1}{k}}
k=1∑10k1
1.0/k表示1.0除以k,其中1.0是一个浮点数常量,而k可以是整数或浮点数。结果将会是一个浮点数,即使k是整数类型。
1/k表示整数除法,其中k必须是整数类型。如果k是整数类型,那么1/k将会进行整数除法运算,结果将会是整数类型。在整数除法中,会将小数部分舍去,只保留整数部分。
AC代码C:
#include<stdio.h>
int main()
{
double sum=0,sum1=0,sum2=0,sum3=0;
for(int k=1;k<=100;k++)
{
sum1+=k;
if(k<=50)
{
sum2+=k*k;
}
if(k<=10)
{
sum3+=1.0/k;
}
}
sum=sum1+sum2+sum3;
printf("三种情况求和结果:%lfn",sum);
}
13.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
如果操作数都是整数类型,则执行整数除法。整数除法将返回一个整数值,省略小数部分,只保留整数部分。例如,5 / 2将返回2,而不是2.5。
如果操作数中至少有一个是浮点数类型,则执行浮点数除法。浮点数除法将返回一个浮点数值,保留小数部分。例如,5.0 / 2将返回2.5。
AC代码C:
#include<stdio.h>
int main()
{
int a,b,c;
for(int i=100;i<=999;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
{
printf("%dn",i);
}
}
}
14.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:
6 its factors are 1,2,3
AC代码C:
#include<stdio.h>
int main()
{
int a,factor,sum;
for(a=2;a<=1000;a++)
{
sum =1;
for(factor=2;factor<=a/2;factor++)
{
if(a%factor==0)
{
sum+=factor;
}
}
if(sum==a)
{
printf("%d因子是:1,",a);
for(factor=2;factor<=a/2;factor++)
{
if(a%factor==0)
{
printf("%d,",factor);
}
}
printf("n");
}
}
}
15.有一个分数序列,求出这个数列的前20项之和。
2
1
frac{2}{1}
12,
3
2
frac{3}{2}
23,
5
3
frac{5}{3}
35,
8
5
frac{8}{5}
58,
13
8
frac{13}{8}
813,
25
13
frac{25}{13}
1325,…
AC代码C:
#include<stdio.h>
int main()
{
double a=2,b=1,sum=0;
double temp;
int count;
scanf("%d",&count);
for(int i=0;i<count;i++)
{
sum+=a/b;
temp=a;
a=a+b;
b=temp;
}
printf("前%d项之和:%lfn",count,sum);
}
16.一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
求它在第10次落地时共经过多少米,第10次反弹多高。
不需要计算第10次的反弹高度,所以减去
AC代码C:
#include<stdio.h>
int main()
{
double a=100;
double sum=0;
for(int i=0;i<10;i++)
{
sum+=a;
a=a/2;
sum+=a;
}
sum=sum-a;
printf("小球供经历%lf米,第10次反弹%lf米n",sum,a);
return 0;
}
17.猴子吃桃问题。
猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。
前一天的桃子数量 = (后一天桃子数量+1) * 2
AC代码C:
#include<stdio.h>
int main()
{
int day=9;
int day_count;
int count=1;
while(day>0)
{
day_count=(count+1)*2;
count = day_count;
day--;
}
printf("total count:%dn",count);
return 0;
}
18.有一个已经排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中
AC代码C:
#include<stdio.h>
int main()
{
int num;
int shuzu[10]={1,2,3,4,5,6,7,8,9,10};
printf("请输入一个整数:");
scanf("%d",&num);
printf("%dn",num);
int end=9;
while(end>=0&&num<shuzu[end])
{
shuzu[end+1]=shuzu[end];
end--;
}
shuzu[end+1]=num;
for(int i=0;i<11;i++)
{
printf("%dn",shuzu[i]);
}
printf("n");
}
19.
AC代码C:
20.
AC代码C:
原文地址:https://blog.csdn.net/weixin_51390582/article/details/134325298
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_4419.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!