10.11练习记录

1.输入整数,求范围内所有素数和。

#include <stdio.h>
int main()
{
    int n,i,j,k;
    while (scanf("%d",&n)!=EOF)
    {
        int sum=0;
        for(i=2;i<=n;i++)
        {   int flag=1;
            for(j=2;j<i;j++)
            {if(i%j==0) {flag=0;break;}}
            if(flag==1) sum+=i;
        }

        printf("%d\n",sum);
    }
}

注意:两重循环里用来判断是否是素数,一层循环外来记录是素数的值。

           注意break的使用和flag的判断。

2.输出1+2^1+2^2+...+2^n的和,直到大于2000为止;输出:2047;

#include <stdio.h.>
int main()
{
    int i,j,k,sum=0;

        for(i=1;;i++)
        {   k=1;
            for(j=1;j<i;j++) {k=k*2;}
            sum=sum+k;

            if(sum>2000) break;
        }
        printf("%d",sum);
        return 0;
}

注意:乘法要记得初始化k=1才可以继续往下乘。

3.很巧妙的方法。

        2/1 3/2  5/3 8/5 13/8 21/13...求出前20项的和保留两位。输出:32.66

#include <stdio.h>
#include <stdlib.h>
int main()
{
    
    float a=1,b=2,sum=0;
    int i;
    for(i=0;i<20;i++)
    {   
        sum=sum+b/a;
        b=a+b;
        a=b-a;
    }
    printf("sum=%0.2f",sum);
   return 0;
}

注意:第一想法是数组但是需要设两个且太过于复杂,多观察给出的数据规律,一个循环就可以搞定^ ^。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值