调试小记 基础练习 1矩形面积交2完美的代价3数的读法 4Sine之舞5阶乘计算

试题 基础练习 矩形面积交

试题 基础练习 完美的代价

试题 基础练习 数的读法

二级目录

三级目录

1试题 基础练习 矩形面积交
题目链接:http://lx.lanqiao.cn/detail.page?submitid=5360449
代码可以参考这个博客哈哈哈,写的好
https://blog.csdn.net/weixin_42859280/article/details/85940385
提交错误原因
第一次:题目,每对顶点!!输入4个数的是一对顶点!!!他们的分别A(x1,y1)B(,x2,y2),而非我当初以为的输入的是4个顶点(以为看到题干第一行说每行输入描述矩形,就以为一行输入是4个顶点信息)
第二次:输出0.00
第三次:int 改 double 题目说是实数,当时在犹豫要不要用double,还是用Int,以后吸取教训,尽力用double(除说明是整数就用Int)
第四次:错误原因,中间变量类型没改为double,!!我TM居然这么粗心
在这里插入图片描述
2试题 基础练习 完美的代价
看完这个题,怎么我就想起翻硬币那题啦 哈哈哈这个题就一定有解,翻硬币那个题,没说无解怎么办,翻硬币题目意思就是不考虑无解,也就是一定有解的情况去做那个题,你大胆做就是。而这里这个题说了无解输出Impossible,就要考虑无解情况.
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T60
思路博客链接: link.
https://blog.csdn.net/wnamej/article/details/105754262
明天看吧(* ̄︶ ̄)
最终看懂代码的博客:链接: link.
这个思路与给的思路链接思路不大一样。这个更容易懂!我感觉是存在一个标志思想代码中(rembiaoz)定义。
双层循环是怎么执行的https://blog.csdn.net/weixin_42166190/article/details/105180416
如何把数组k位置的值和k+1位置的值交换,用swap()函数。好消息!!!swap()函数是STL库的,可放心食用
能懂起的代码https://blog.csdn.net/qq_37962204/article/details/79720960

#include<bits/stdc++.h>
using namespace std;

int main() {
       int n,flag=0,remv=0,rembiaoz=0;
       scanf("%d",&n);
       char a[8001];
       scanf("%s",a);
       int la=n-1;
      for(int i=0;i<la;i++){
        for(int k=la;k>=i;k--){
            if(i==k){

                if(n%2==0||flag){
                    printf("Impossible\n");
                    return 0;
                }
            flag=1;
            rembiaoz+=n/2-i;

                }
            else if(a[i]==a[k]){
                for(int m=k;m<la;m++){
                    swap(a[m],a[m+1]);
                    remv++;
                }
                la--;
                break;
            }
        }
      }
      printf("%d\n",rembiaoz+remv);

return 0;
}

3试题 基础练习 数的读法
http://lx.lanqiao.cn/problem.page?gpid=T61
思路一: 用数组.
用什么输入呢;如何输入用char * a[] ,什么是char *a[] []优先级高,a先和[]结合,再心号 整体来是数组元素里放的指针(地址)
什么是cha * num[] 链接: 什么是cha * num[].
在这里插入图片描述
在这里插入图片描述

#include<iostream>
using namespace std;
 
int main(){
    char *num[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    char *wei[]={"shi","bai","qian","wan","yi"};
    char *str[20];  //存最后结果
 
    //i:4位数为一组
    //j:数组str的下标
    //k:n的最后一位数
    int i,j,k,n,l[2]={0};
    i=0;j=0;
    cin>>n;
    while(n>0){
        k=n%10;
        n/=10;
        if(k>0){
            if(i>0){
                if(i>=4 && !l[i/4-1]){  //如果是大于等于4位数的数,且还未添加位
                    l[i/4-1]=1;
                    str[j++]=wei[i/4+2];
                }
                if(i%4!=0){
                    str[j++]=wei[i%4-1];//前位读法
                }
            }
            str[j++]=num[k];
        }
 
        else if(j>0 && str[j-1]!=num[0]){   //k等于0的情况
            str[j++]=num[0];
        }
 
        i++;
    }
    if(!(str[j-1]=="yi" && j>1 && str[j-2]=="shi"))  //去除yi shi的情况
        cout<<str[j-1]<<" ";        //输出第一位数
    for(i=j-2;i>=0;i--){        //输出剩余的各个字符串
        cout<<str[i]<<" ";
    }
 
    return 0;
}

思路二:写函数.

4试题 基础练习 Sine之舞
http://lx.lanqiao.cn/problem.page?gpid=T62
找规律链接.

递归链接.

5试题 基础练习 阶乘计算

大的整数,用数组来存放,计算n的阶乘。

#include <iostream>  
#include<string.h>
using namespace std;  
#define len 100000
int main()
{    int jinwei=0,k=0;   
     int a[len],n;//使用数组a表示一个大整数,A[0]表示a的个位,A[1]表示a的十位,依次类推 
    memset(a,0,sizeof(a));
    a[0]=1;
    scanf("%d",&n);
    for(int i=2;i<=n;i++){
    	for(int j=0;j<len;j++){
    		int s=a[j]*i+jinwei;
    		jinwei=s/10;
    		a[j]=s%10;
		}
	
	}
	//进行输出 前的处理:多余的0干掉 
	for(int i=len-1;i>=0;i--){
		if(a[i]!=0){
			k=i;
			break;
		}	
	}
	//进行输出 
	for(int i=k;i>=0;i--){
		printf("%d",a[i]);
	}
return 0;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值