• 通过遍历如果能被7或17整除,并且是偶数就输出这个数,这样要遍历range次
int methodOne(int range){int i,m=0,s=0;for(i=1;i<=range;i++){if((i%7==0 || i%17==0) && i%2==0){s=s+i;}}printf("sum1=%d\n",s);
}
  • 因为输出的都是偶数,所以可以使步长+2,这样只需要遍历range/2次。
  • 注意:i的初始值为0,这样i的变化才是0、2、4、6...递增才是偶数
int methodOne(int range){int i,s=0;for(i=0;i<=range;i+=2){if((i%7==0 || i%17==0)){s=s+i;}}printf("sum1=%d\n",s);
}
  • 能被7整除的偶数有:14、28、42、56
  • 能被17整除的偶数有:34、68、102、170
  • 能被17整除的偶数与能被7整除的偶数相差20、40、80、100...
  • 能被7整除的偶数的步长是14
  • 因为存在既能被7整除也能被17整除这样的数(如:238),所以只能加一次这样的数。前面已经能被7整除的数加了一次,后面就不能被7整除。因为能17整除的偶数增长快,所以它的最大值不能大于range。
int methodTwo(int range){int sum=0,j=14,m; for(m=1;j<=range;j+=14,m++){      sum=sum+j;if(j+20*m<range && (j+20*m)%7!=0){sum=sum+j+20*m;}}printf("sum2=%d\n",sum);
}
  • 能被7整除的偶数有:14、28、42、56...14n, 前n项和S1=[n/14 * (14+n/14 * 14)]/2
  • 能被17整除的偶数有:34、68、102、170...34n, 前n项和S2=[n/34 * (34+n/34 * 34)]/2
  • 能被17整除的偶数与能被7整除的偶数有:238...238n, 前n项和S3=[(n/238 * (238+n/238 * 238)]/2;
  • 因为加了两次能被17整除的偶数与能被7整除的偶数,所以要减一次S3
int methodThree(int n){int sum1, sum2, sum3;sum1=(n/14 * (14+n/14 * 14))/2; sum2=(n/34 * (34+n/34 * 34))/2; sum3=(n/238 * (238+n/238 * 238))/2; return sum1+sum2-sum3;
}
  • 完整代码

输出n以内被7或17整除的数相关推荐

  1. 输出200以内所有能被7整除的数

    任务 编写程序,输出200以内所有能被7整除的数.要求:每行输出5个数. 代码 #include<stdio.h>int main(){// 请在下面添加代码// ********** B ...

  2. 输出100以内所有能被7整除的数

    #include<stdio.h> int main() {int i;for(i=1;i<=100;i++)if(i%7==0)printf("%d\n",i) ...

  3. 简单编程(十一)简单编程 判断并输出500以内既能够被3整除又能够被6整除的整数。

    判断并输出500以内既能够被3整除又能够被6整除的整数.  Java public class ert {/** * @param args */ public static void main(St ...

  4. C语言编译能否被七整除,求c语言高手输出1000以内既能被5整除又能被7整除

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求c语言高手 输出1000以内既能被5整除又能被7整除的数,要求五个数回答:int main(){int num =0;for(in ...

  5. c语言100以内最大能被17整除,求100之内自然数中最大的能被17整除的数.doc

    求100之内自然数中最大的能被17整除的数 1求100之内自然数中最大的能被17整除的数 #include void main() { int i ; for (i=100;i>0;i--) i ...

  6. c语言100以内最大能被17整除,求100之内自然数中最大的能被17整除的数

    1.1求100之内自然数中最大的能被17整除的数#includevoid main() int i ;for (i=100;i0;i-)if(i%17-0)break;printf("%dn ...

  7. python输入正整数n、求n以内能被17整除的最大正整数_求100之内自然数中最大的能被17整除的数...

    . . 1 求 100 之内自然数中最大的能被 17 整除的数 #include void main() { int i ; for (i=100;i>0;i--) if(i%17--0)bre ...

  8. python输入正整数n、求n以内能被17整除的最大正整数_求100之内自然数中最大的能被17整除的数资料...

    精品文档 精品文档 1 求 100 之内自然数中最大的能被 17 整除的数 #include void main() { int i ; for (i=100;i>0;i--) if(i%17- ...

  9. python 0 100被7整除_python: 输出 1~100 之间不能被 7 整除的数,每行输出 10 个数字,要求应用字符串格式化方法美化输出格式。...

    #输出 1~100 之间不能被 7 整除的数 j = 0    # 定义 计数变量为 j,初始值为1 for i in range(1,101):    # 遍历1-100取值,定义为变量 i if ...

最新文章

  1. POJ 1260 Pearls(DP)
  2. sqlAlchemy中的对象转换为dict
  3. linux服务器性能监控命令汇总(一)
  4. Android JNI 编程
  5. matlab常用命令参考
  6. 【数据结构与算法】之深入解析“K个逆序对数组”的求解思路与算法示例
  7. python随机抽样numpy_python numpy之np.random的随机数函数使用介绍
  8. docker与jenkins学习
  9. LeetCode 1985. 找出数组中的第 K 大整数(排序)
  10. linux指令:输出重定向与追加- 输出重定向 - 表示追加
  11. 闭合导线坐标计算表_测量员人员必备:8套工程测量公式计算表,输入参数自动得出结果...
  12. 淘宝直播连续3年增速150%以上 一年喊了2.27亿句“宝宝”
  13. Rust常用编程概念之变量和可变性
  14. 使用非参数统计检验进行分析的指南
  15. 锐浪报表开发Web版
  16. 虚拟计算机累加乘法,乘法指令之: MLA乘-累加指令
  17. 大写罗马数字(大写罗马数字3)
  18. Django笔记十一之外键查询优化select_related和prefetch_related
  19. php 瀑布流 分页,waterfall瀑布流布局+动态渲染的实现
  20. 女生转行做什么工作好?想要转行互联网可以选择哪些方向?

热门文章

  1. 产品经理的主要工作内容
  2. 解析模板 [index.html] 时出错,模板可能不存在或可能无法被任何已配置的模板解析器访问
  3. 计算2000年1月1日到2008年1月1日 相距多少天。
  4. 四个热点事件营销技巧
  5. 机器学习笔记第1章【机器学习导论】
  6. 兼收并蓄,不要试图去研究它.---JAVA之我注六经之三
  7. katana(武士刀)setuid提权
  8. 从学习php到可以独立做网站需要多久,第一课 前言 学PHP就是为了做网站
  9. 一级计算机基础及ms office应用练习,2016一级计算机基础及msoffice应用练习题
  10. 【Linux】基于Ncurse图形库的贪吃蛇(C语言)