【ACM日记】hihocoder #1637 : 逃离单身节

本文介绍了一个简单的程序设计问题,即如何使用C++编程语言绘制一个大小可变的红心图案。该程序通过复杂的循环结构实现了不同尺寸红心的输出。
时间限制:1000ms
单点时限:1000ms
内存限制:256MB

描述

在刚刚过去的单身节中,小Hi受尽了各种伤害,他在心中暗下决心,一定不再过明年的单身节。

为了逃离单身节,小Hi准备编写一个程序向他的女神发送一颗红心!

一个Size为1的红心如下图所示:

 _   _
/ \_/ \
|     |
\     /
 \   /
  \_/


但是这颗红心太小了,所以小Hi将其每条边的长度都乘以N,从而使得女神能够看得清楚。

  __      __
 /  \    /  \
/    \__/    \
|            |
|            |
\            /
 \          /
  \        /
   \      /
    \    /
     \__/

输入

第一行包含一个整数N,表示红心的大小。

对于100%数据,满足N<=10

输出

输出一个Size为N的红心。(小Hi大概还是没有办法逃离单身节吧,毕竟这颗心画出来好像是黑的)

行末的空格不需要输出。

样例输入
2
样例输出
  __      __
 /  \    /  \
/    \__/    \
|            |
|            |
\            /
 \          /
  \        /
   \      /
    \    /
     \__/
分析:本题没有什么难度,纯粹签到题,各种循环乱写就好。
AC代码:
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char** argv) {
	int i=0;
	while(cin>>i)
	{
	int j,k;
	//cout<<endl;//这里我被pe了。。。。。 
	for(j=0;j<i;j++)
		cout<<' ';
	for(j=0;j<i;j++)
		cout<<'_';
	for(j=0;j<(2*i+i);j++)
		cout<<' ';
	for(j=0;j<i;j++)
		cout<<'_';
	cout<<endl;////心脏的顶部两条线 
	for(j=0;j<i;j++)
		{
		for(k=0;k<i-j-1;k++)
			cout<<' ';
			cout<<'/';
		for(k=0;k<i+2*j;k++)
			cout<<' ';
			cout<<'\\'; 
		for(k=0;k<3*i-2*j-2;k++)
				{
				if(j==i-1){
				for(k=0;k<i;k++)cout<<'_';break;}
			cout<<' ';
			}
			cout<<'/';
		for(k=0;k<i+2*j;k++)
			cout<<' ';
			cout<<'\\';
			cout<<endl;		 
    	} ////上半部分的绘制 
    for(j=0;j<i;j++)
    	{
    		cout<<'|';
    	for(k=0;k<7*i-2;k++)
    		cout<<' ';
    		cout<<'|';
    		cout<<endl;
  		 }//	
	for(j=0;j<3*i;j++)
	{
		for(k=0;k<j;k++)
			cout<<' ';
			cout<<'\\';
		for(k=0;k<7*i-2*j-2;k++)
		{
			if(j==3*i-1){
				for(k=0;k<i;k++)cout<<'_';break;}
				cout<<' ';}
			cout<<'/';
			cout<<endl;
	}//下半部分绘制 


	
}
	return 0;
}
在嵌入式开发中,遇到类似 **Error #540: &#39;Chipsea::Device:HAL:ACMP:1.0.5&#39; component not available for target &#39;cs32g020&#39;** 的错误,通常表示当前项目中引用的某个软件组件(如 HAL 中的 ACMP 模块)并不支持目标设备(如 `cs32g020`)。这种问题常见于使用 CMSIS-Pack 或厂商提供的 HAL 库进行开发时,尤其是在组件配置管理工具(如 Keil µVision 的 RTE 或 IAR 的 C-SPY)中。 ### 错误原因分析 1. **组件不兼容目标设备**:错误信息明确指出 `Chipsea::Device:HAL:ACMP:1.0.5` 不适用于目标芯片 `cs32g020`,说明该组件仅支持特定的设备型号列表,而当前目标不在其中。 2. **RTE 配置错误**:可能是由于在 RTE(Run-Time Environment)中手动启用了该组件,而未检查其是否适用于当前目标设备。 3. **Pack 安装不完整或版本错误**:可能安装了不兼容版本的设备支持包或 HAL 库。 ### 解决方案 - **检查 RTE 配置**:进入 RTE 配置界面,查找 `Chipsea::Device:HAL:ACMP:1.0.5` 组件,取消勾选或替换为适用于 `cs32g020` 的替代组件(如存在)。 - **更新或安装正确的设备支持包**:确保已安装适用于 `cs32g020` 的最新 CMSIS-Pack 或厂商 HAL 包,确保组件兼容性。 - **修改项目配置文件**:如果使用 XML 或 JSON 格式的配置文件描述 RTE 组件,手动删除或注释掉对 `Chipsea::Device:HAL:ACMP:1.0.5` 的引用。 - **查阅文档确认支持设备列表**:查看该组件的官方文档或 `.pdsc` 文件,确认其支持的目标设备列表,并选择兼容的组件版本。 ### 示例:修改 RTE 配置文件(如 `.cprj` 或 `.json`) ```json { "components": [ { "name": "Chipsea::Device:HAL:ACMP", "version": "1.0.5", "remove": true } ] } ``` ### 示例:检查支持设备的 `.pdsc` 文件片段 ```xml <component Cclass="Device" Cgroup="HAL" Csub="ACMP" version="1.0.5"> <description>Analog Comparator HAL driver</description> <conditions> <condition id="device_support"> <description>Supported devices</description> <requires> <device vendor="Chipsea">CS32F4xx</device> <device vendor="Chipsea">CS32L4xx</device> </requires> </condition> </conditions> </component> ``` 根据上述配置,`cs32g020` 并不在支持列表中,因此需要选择其他组件或联系厂商获取支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值