| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5560 人关注过本帖
标题:1至10000之间不能被3或5整除的整数之和
只看楼主 加入收藏
邱威
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:136
专家分:351
注 册:2012-3-28
收藏
得分:2 
回复 8楼 李格非1992
那不更复杂了,连续用两个循环,最后再相减。还是不能逃离循环。。。
2012-06-12 10:13
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:0 
回复 6楼 beyondyf
你的意思是用1到10000的和,减去3的倍数和5的倍数的和,再加上15的倍数的和? 数学方法我就想到这种之前刚学的
2012-06-12 10:38
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:0 
回复 楼主 依然怀旧
程序代码:
#include <stdio.h>

int sum(int x){
  int y;
  y=(x+10000/x*x)*(10000/x)/2;
  return(y);
}

main(){

  int answer;

  answer=sum(1)-sum(3)-sum(5)+sum(15);

  printf("Sum is: %d",answer);

  return 0;

}



[ 本帖最后由 逸枫 于 2012-6-12 11:39 编辑 ]
2012-06-12 10:46
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 10楼 never_yzq
小友,我又该说你的代码完全不对了。你的n赋值了么?而且与题意不符。楼主说的是“或”,而不是“与”。

手头是不是没有调试工具?以后写代码一定要自己运行一下。

尤其当规模越来越大的时候,尽量完成一个模块就测试一下,保证功能的正确性。

顺道问一下各位现在的学历状况。如果各位是初中生,那你们的代码我会给予鼓励。如果各位大学在读或毕业,那我就想批评一下了。

这和学编程多长时间没关系,是数学素养的问题。这题目如果让各位拿笔算,难倒也会这么一位一位的加么?

本来还想说些更严厉的话的,算了,免得伤了大家的学习热情。记住一点,评价一个程序的好坏,效率是个硬指标。

送一段代码给大家参考。希望能对各位有所启示。
程序代码:
#include<stdio.h>

int cal(int n)
{
    int n3, n5, n15;
    n3 = n / 3;
    n5 = n / 5;
    n15 = n / 15;
    return ((1 + n) * n - 3 * (1 + n3) * n3 - 5 * (1 + n5) * n5 + 15 * (1 + n15) * n15) / 2;
}

int main()
{
    int n = 10000;
    printf("%d\n", cal(n));
    return 0;
}

重剑无锋,大巧不工
2012-06-12 11:10
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:2 
回复 14楼 beyondyf
学习了
2012-06-12 11:23
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:2 
回复 14楼 beyondyf
能帮我看看13楼的答案吗?感觉和你做法差不多,可是答案差了一点点,哪里出错了?
2012-06-12 11:28
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:2 
回复 16楼 逸枫

y=(x+10000/x*x)*10000/x/2;
改成
y=(x+10000/x*x)*(10000/x)/2;

重剑无锋,大巧不工
2012-06-12 11:33
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:0 
回复 17楼 beyondyf
好了,谢谢啊。。忘记他们的计算顺序了-.-
2012-06-12 11:40
never_yzq
Rank: 4
等 级:业余侠客
帖 子:112
专家分:213
注 册:2012-5-25
收藏
得分:2 
回复 14楼 beyondyf
小弟学习了,谨记教诲。
我大一,目前自学c语言。
2012-06-12 11:56
c狼
Rank: 1
来 自:江西
等 级:新手上路
帖 子:13
专家分:5
注 册:2012-6-10
收藏
得分:0 
程序代码:
#include<stdio.h>
int sum(int x)
{
  return (x*(x+1)/2);    /*等差数列求和*/
}
main()
{
    int n,a,c;
    c=sum(10000);
    n=10000/15;            /*求出有多少个能整除15的数*/
    a=15*sum(n);       
    printf("结果为:%d\n",c-a);
}
这个程序怎么样
2012-06-12 17:30
快速回复:1至10000之间不能被3或5整除的整数之和
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047974 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved