繪圖機器 - 華為OD統一考試(C卷)

OD統一考試(C卷)

分值: 100分

題解: Java / Python / C++

alt

題目描述

繪圖機器的繪圖筆初始位置在原點(0, 0),機器啟動后其繪圖筆按下面規則繪制直線:

1)嘗試沿著橫向坐標軸正向繪制直線,直到給定的終點值E。

2)期間可通過指令在縱坐標軸方向進行偏移,并同時繪制直線,偏移后按規則1 繪制直線;指令的格式為X offsetY,表示在橫坐標X 沿縱坐標方向偏移,offsetY為正數表示正向偏移,為負數表示負向偏移。

給定了橫坐標終點值E、以及若干條繪制指令,請計算繪制的直線和橫坐標軸、以及 X=E 的直線組成圖形的面積。

輸入描述

首行為兩個整數N E,表示有N條指令,機器運行的橫坐標終點值E;

接下來N行,每行兩個整數表示一條繪制指令X offsetY,用例保證橫坐標X以遞增排席方式出現,目不會出現相同橫坐標X;

取值范圍: 0<N<=10000,0<= X<=E<=20000,-10000 <= offsetY <= 10000。

輸出描述

一個整數,表示計算得到的面積,用例保證,結果范圍在0~4294967295內

示例1

輸入:
4 10
1 1
2 1
3 1
4 -2輸出:
12

image-20240213203445916

示例2

輸入:
2 4
0 1
2 -2輸出:
4

image-20240213203601861

題解

這是一個簡單的幾何題,通過讀取指令和橫坐標值,計算出圖形的總面積。以下是對該問題的解法總結:

  1. 解題思路: 按要求讀取每個指令,根據指令更新繪圖筆位置并計算相應的面積。
  2. 代碼描述:
    • 初始化圖形總面積 totalArea 和繪圖筆位置 (x, y)
    • 讀取每個指令,計算當前邊和前一條邊組成的面積,并更新繪圖筆位置。
    • 最后計算最后一條邊組成的面積。
    • 輸出結果。

Java

import java.util.Scanner;/*** @author code5bug*/public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 讀取輸入的 N 和 Eint N = in.nextInt(), E = in.nextInt();// 初始化圖形總面積long totalArea = 0;// 繪圖筆位置 (x, y)int x = 0, y = 0;// 讀取命令并存儲在數組中for (int i = 0; i < N; i++) {int curX = in.nextInt(), offsetY = in.nextInt();// 累計當前邊和前一條邊組成的面積totalArea += 1L * (curX - x) * Math.abs(y);// 更新繪圖筆位置x = curX;y += offsetY;}// 計算最后一條邊組成的面積totalArea += (E - x) * Math.abs(y);// 輸出結果System.out.println(totalArea);}
}

Python

N, E = map(int, input().split())# 圖形總面積, 繪圖筆位置 (x, y)
total_area, x, y = 0, 0, 0for _ in range(N):cur_x, offset_y = map(int, input().splitt())# 累計當前邊和前一條邊組成的面積total_area += (cur_x - x) * abs(y)# 更新繪圖筆位置x, y = cur_x, y + offset_y# 最后一條邊的面積
total_area += (E - x) * abs(y)print(total_area)

C++

#include <iostream>using namespace std;int main() {// 讀取輸入的 N 和 Eint N, E;cin >> N >> E;// 初始化圖形總面積long long totalArea = 0;// 繪圖筆位置 (x, y)int x = 0, y = 0;// 讀取命令并存儲在數組中for (int i = 0; i < N; i++) {int curX, offsetY;cin >> curX >> offsetY;// 累計當前邊和前一條邊組成的面積totalArea += 1LL * (curX - x) * abs(y);// 更新繪圖筆位置x = curX;y += offsetY;}// 計算最后一條邊組成的面積totalArea += 1LL * (E - x) * abs(y);// 輸出結果cout << totalArea << endl;return 0;
}

????華為OD機試面試交流群每日真題分享): 加V時備注“華為od加群”

🙏整理題解不易, 如果有幫助到您,請給點個贊 ???? 和收藏 ?,讓更多的人看到。🙏🙏🙏

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719433.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719433.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719433.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小程序海報生成海報【vue】

文章目錄 1、創建海報的基本邏輯2、用canvas繪制文字3、繪制矩形4、繪制圓形5、繪制圓角矩形6、繪制圖片7、執行繪制8、完整的代碼 1、創建海報的基本邏輯 1、先創建dom元素 wrapperHeight是根據海報的內容計算出來海報的高度 <view class"preview-card-wrap" ta…

支持向量機 SVM | 線性可分:硬間隔模型公式推導

目錄 一. SVM的優越性二. SVM算法推導小節概念 在開始講述SVM算法之前&#xff0c;我們先來看一段定義&#xff1a; 支持向量機(Support VecorMachine, SVM)本身是一個二元分類算法&#xff0c;支持線性分類和非線性分類的分類應用&#xff0c;同時通過OvR或者OvO的方式可以應用…

長貴對趙本山說:你需要我們家大腳,我立馬給你配雙大鞋!

長貴對趙本山說&#xff1a;你需要我們家大腳&#xff0c;我立馬給你配雙大鞋&#xff01; --小品《鄉村愛情》&#xff08;中2&#xff09;的臺詞 表演者&#xff1a;趙本山 于月仙 王小利 唐鑒軍等 &#xff08;接上&#xff09; 哈哈哈 伊拉克啊 這地方也不產這玩意吧 …

Chat GPT:AI聊天機器人的革命性突破!

一、引言 近年來&#xff0c;人工智能&#xff08;AI&#xff09;技術的發展日新月異&#xff0c;其中最具代表性的成果之一便是Chat GPT。這款基于自然語言處理&#xff08;NLP&#xff09;技術的聊天機器人&#xff0c;以其高度智能、靈活多變的特點&#xff0c;迅速吸引了全…

筆記74:在SLAM建圖過程中,為什么要使用【障礙物點云配準算法】和【里程計估算算法】結合的方法

僅使用【障礙物點云配準算法】&#xff0c;很容易導致在一條長通道中&#xff0c;因為前后兩幀的雷達點云圖過于相似&#xff0c;導致特征匹配一直完全重合&#xff0c;使得機器人建圖一直停留在原地&#xff0c;但實體機器人早就沿著通道跑向遠端了&#xff1b; 使用Hector_ma…

(學習日記)2024.03.02:UCOSIII第四節:創建任務

寫在前面&#xff1a; 由于時間的不足與學習的碎片化&#xff0c;寫博客變得有些奢侈。 但是對于記錄學習&#xff08;忘了以后能快速復習&#xff09;的渴望一天天變得強烈。 既然如此 不如以天為單位&#xff0c;以時間為順序&#xff0c;僅僅將博客當做一個知識學習的目錄&a…

js 精確計算(解決js四則運算精度缺失問題)

js的小數的運算&#xff0c;可能會得到一個不精確的結果&#xff0c;因為所有的運算都要轉換成二進制去計算&#xff0c;然而&#xff0c;二進制無法精確表示1/10。 var a 0.1 0.2; console.log(a); //打印結果&#xff1a;0.30000000000000004因此需要使用以下方法實現精確…

這是開玩笑嗎?加個工具,WPS與Excel表格變成了應用系統

表格處理數據簡單快捷&#xff0c;是個人用戶的首選。然而&#xff0c;當企業長期使用&#xff0c;成本表、客戶表、銷售表等堆積如山&#xff0c;尋找所需表格如同大海撈針&#xff0c;稍有不慎便可能導致數據丟失、混亂。即便使用WPS和Excel這樣的表格軟件&#xff0c;處理大…

代碼隨想錄算法訓練營第三十六天 | LeeCode 435. 無重疊區間 ,763.劃分字母區間 , 56. 合并區間

435. 無重疊區間 - 力扣&#xff08;LeetCode&#xff09; class Solution { private:static bool cmp(const vector<int> &a,const vector<int> &b){if(a[0]b[0]) return a[1]<b[1];return a[0]<b[0];} public:int eraseOverlapIntervals(vector&l…

C#進階高級語法之LINQ:查詢操作的便利性與效率提升

引言&#xff1a; 在C#編程中&#xff0c;LINQ&#xff08;Language-Integrated Query&#xff09;是一種強大的查詢語言&#xff0c;它被集成在.NET框架中&#xff0c;允許開發者對各種數據源進行查詢和操作。LINQ的出現&#xff0c;極大地提升了C#在數據處理方面的能力&#…

回溯難題(算法村第十八關黃金挑戰)

復原 IP 地址 93. 復原 IP 地址 - 力扣&#xff08;LeetCode&#xff09; 有效 IP 地址 正好由四個整數&#xff08;每個整數位于 0 到 255 之間組成&#xff0c;且不能含有前導 0&#xff09;&#xff0c;整數之間用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 &q…

IDEA中使用git提交代碼時,有.class文件怎么避免

在IDEA中使用git提交代碼時&#xff0c;git把.class文件都給我放進來了&#xff0c;而我并不想要提交.class文件 我要提交的是.java文件 應該怎么設置呢 解決方案&#xff0c;點擊整個項目的生命周期中的clean之前&#xff0c;你會發現git提交欄的.class文件都不見了。

常用LDO型號

常用LDO型號 常用LDO型號-國產&進口 常用的LDO&#xff08;低壓差線性穩壓器&#xff09;型號有以下這些&#xff1a; LM2937及LM2937-N&#xff1a;這兩款是TI&#xff08;德州儀器&#xff09;的產品&#xff0c;其中LM2937-N為低噪聲版本&#xff0c;適用于對噪聲敏感…

vue是如何監聽對象和數組變化的

Vue框架通過其響應式系統來監聽對象和數組的變化。這個系統的核心在于追蹤依賴關系&#xff0c;并在數據變化時通知所有依賴于該數據的觀察者。 1. 對象監聽 Vue使用Object.defineProperty方法來劫持各個屬性的getter和setter。當組件中的數據被讀取時&#xff0c;會觸發gette…

ROS2服務通信的實現

文章目錄 1.服務通信的概念及應用場景1.1概念1.2 應用場景 2.準備工作3.服務通信的實現3.1 服務通信接口消息3.2 服務端實現3.3 客戶端實現3.4 編譯及運行3.4.1 修改CMakeLists3.4.2 服務端運行結果3.4.2 客戶端運行結果 1.服務通信的概念及應用場景 1.1概念 服務通信也是ROS…

抖店0元入駐不交錢會怎么樣?個人店和個體店的利弊分析,開店必看

我是王路飛。 現在的抖店是可以開通個人店的。 也就是不需要營業執照、直接使用個人身份證就可以在抖音開店&#xff0c;而且也不需要繳納店鋪保證金就能開店運營了。 但真實情況是怎么樣的呢&#xff1f;新手0元入駐抖店不交這個保證金會怎么樣呢&#xff1f; 今天給想在抖…

AI大預言模型——ChatGPT在地學、GIS、氣象、農業、生態、環境應用

原文鏈接&#xff1a;AI大預言模型——ChatGPT在地學、GIS、氣象、農業、生態、環境應用 一開啟大模型 1 開啟大模型 1)大模型的發展歷程與最新功能 2)大模型的強大功能與應用場景 3)國內外經典大模型&#xff08;ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diff…

ios App 發送廣播失敗解決

記錄開發 ios App 使用 c 混編時遇到的問題&#xff1a; 開發環境 macOS Sonoma&#xff08;最新版本14.3.1&#xff09; Xcode Version 15.2 ipadOS&#xff08;最新版本17.3.1&#xff09; 問題&#xff1a;在mac 上 和 ipad上測試&#xff0c;當 udp 發送廣播&#xff…

跨域引起的兩個接口的session_id不是同一個

來源場景&#xff1a; RequestMapping(“/captcha”)接口設置了SESSION_KEY&#xff0c;也能獲取到&#xff0c;但是到了PostMapping(“/login”)接口就是空的&#xff0c;由于跨域導致的兩個session_id不是同一個 /*** 系統用戶 前端控制器*/ Controller CrossOrigin(origins…

【數據結構和算法初階(C語言)】雙向循環帶頭鏈表的增刪查改詳解(天才設計的鏈表結構,應用簡單逆天!!!!!)

目錄 ?編輯?編輯 1.雙向鏈表的定義&#xff1a;前赴后繼 2.帶頭鏈表的定義-----哨兵位 3.增刪查改 3.1創建新節點函數----方便后續增加節點調用 3.2創建哨兵位----創建頭結點 3.3增加節點&#xff0c;尾部插入數據 3.4尾刪除 3.5查找函數----遍歷對比&#xff…