2.循环结构程序设计

本文介绍了循环结构在程序设计中的应用,包括for、while和do-while循环,并通过实例讲解了循环的代价和优化。文章还涉及算法竞赛中的输入输出框架,以及在处理溢出、精度丢失等问题时的策略。此外,提供了水仙花数、韩信点兵等经典编程练习,帮助读者巩固循环和算法知识。
摘要由CSDN通过智能技术生成

内容

for 循环
  1. 输出1,2,3,…,n的值
    #include<stdio.h>
    
    int main()
    {
      	int n;
    	scanf("%d", &n);
    	for(int i=1; i<=n; i++){
    		printf("%d\n", i);
    	}
    	return 0;	
    } 
    
    1. for循环的格式: for(初始化; 条件; 调整) 循环体;
    2. 注意理解for循环的执行过程
    3. 在循环内定义变量的i,循环体外不可见。尽量缩小变量定义的范围。
  2. 输出所有形如aabb的4位完全平方数。
    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
    	// 两层循环嵌套 
    	for(int i=1; i<10; i++){
    		for(int j=0; j<10; j++){
    			// 得到 aabb 这种数 
    			int n = i*1100+j*11;
    			// 开方,四舍五入 
    			int m = floor(sqrt(n) + 0.5);
        		if(m*m == n){
    			printf("%d\n", n);
        		} 
    		}
    	}
        return 0;	
    }
    
    1. 伪代码,实际应用中,不需要太拘泥于伪代码的格式,主要目标是描述算法梗概,避开细节,启发思路。
    2. 浮点运算可能存在误差。在进行浮点数比较时,应考虑到浮点误差。
    // 解答二 枚举法
    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
    	for(int i=1; ; i++){
    		int x = i*i;
    		if(x < 1000){
    			continue;
    		}
    		if(x > 9999){
    			break;
    		}
    		int hi = x/100;
    		int low = x%100;
    		if(hi/10 == hi%10  && low/10 == low%10){
    			printf("%d\n", x);
    		}
    	} 
    	return 0;	
    }
    
    注:把所有平方数都列举出来,选出满足条件的,四位数,aabb型。
while循环和do-while循环
  1. 3n+1问题
    对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次这样的变换,一定会使n变为1。求变换次数。
    #include<stdio.h>
    
    int main()
    {
    	int n, times;
    	scanf("%d", &n);
    	times = 0;
    	while(n != 1){
    		if(n%2 == 0){
    			n = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值