1. 程式人生 > >2018年第九屆藍橋杯C語言B組答案第七題:螺旋折線

2018年第九屆藍橋杯C語言B組答案第七題:螺旋折線

標題:螺旋折線
如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。  
對於整點(X, Y),我們定義它到原點的距離dis(X, Y)是從原點到(X, Y)的螺旋折線段的長度。  
例如dis(0, 1)=3, dis(-2, -1)=9  
給出整點座標(X, Y),你能計算出dis(X, Y)嗎?

【輸入格式】

X和Y  

【輸出格式】
輸出dis(X, Y)  
【樣例輸入】
0 1
【樣例輸出】
3

程式碼:

#include<iostream>
#include<math.h> 
using namespace std;
int sum=1;
int fun(int x,int y,int n,int m)
{
if(n==0&&m==0)
{
cout<<"0"<<endl;
}
else
{
while(x<=abs(n)+1||y<=abs(m)+1)
{
if(y<0 && -y>=x && x+y!=1 && x-y>=0)//
{
if(x==n && y==m)
{
cout<<sum<<endl;
break;
return 0;
}
x=x-1;
sum++;
}
if(x<0 && -x>y && x-y<=-1)
{
if(x==n && y==m)
{
cout<<sum<<endl;
break;
return 0;
}
x=x+1;
sum++;
}
if(x>0 && y>-x && y-x!=1 && x-y>=0)
{
if(x==n && y==m)
{
cout<<sum<<endl;
break;
return 0;
}
y=y-1;
sum++;
}
}
}

}

int main(int argc, char*argv[]

{

    int n,m;

    cin>>n>>m;
    fun(-1,0,n,m);

    return 0;

}


相關推薦

2018九屆藍橋C語言B答案遞增三元

標題:遞增三元組給定三個整數陣列A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN],請你統計有多少個三元組(i, j, k) 滿足:1. 1 <= i, j, k <= N  2. Ai

2018九屆藍橋C語言B答案螺旋折線

標題:螺旋折線如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。  對於整點(X, Y),我們定義它到原點的距離dis(X, Y)是從原點到(X, Y)的螺旋折線段的長度。  例如dis(0, 1)=3, dis(-2, -1)=9  給出整點座標(X, Y),你能計

2018九屆藍橋C語言B答案第二明碼

標題:明碼漢字的字形存在於字型檔中,即便在今天,16點陣的字型檔也仍然使用廣泛。16點陣的字型檔把每個漢字看成是16x16個畫素資訊。並把這些資訊記錄在位元組中。一個位元組可以儲存8位資訊,用32個位元組就可以存一個漢字的字形了。把每個位元組轉為2進製表示,1表示墨跡,0表示

九屆藍橋C語言B 乘積尾零

個數 內容 表示 color 兩個 col printf tdi 行數 標題:乘積尾零 如下的10行數據,每行有10個整數,請你求出它們的乘積的末尾有多少個零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758

九屆藍橋 Java語言B 螺旋折線

題目:螺旋折線 如圖p1.pgn所示的螺旋折線經過平面上所有整點恰好一次。 對於整點(X, Y),我們定義它到原點的距離dis(X, Y)是從原點到(X, Y)的螺旋折線段的長度。 例如dis(0, 1)=3, dis(-2, -1)=9 給出整點座標(X, Y),你能計算出d

藍橋2018九屆藍橋省賽B—乘積尾零

如下的10行資料,每行有10個整數,請你求出它們的乘積的末尾有多少個零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 56

藍橋2018九屆藍橋省賽B—遞增三元

給定三個整數陣列 A = [A1, A2, … AN], B = [B1, B2, … BN], C = [C1, C2, … CN], 請你統計有多少個三元組(i, j, k) 滿足: 1. 1 <= i, j, k <= N 2. Ai < Bj &l

加法變乘法——六屆藍橋C語言B(省賽)

clu 自己 nbsp 加法 藍橋杯 重新 () std spa 原創 加法變乘法 我們都知道:1+2+3+ ... + 49 = 1225現在要求你把其中兩個不相鄰的加號變成乘號,使得結果為2015 比如:1+2+3+...+10*11+12+...+27*28+29+

三羊獻瑞——六屆藍橋C語言B(省賽)

lan font oid 漢字 print ack size IV cnblogs 原創 三羊獻瑞 觀察下面的加法算式: 祥 瑞 生 輝 + 三 羊 獻 瑞 ------------------- 三 羊 生 瑞 氣 (如果有對齊問題,可以參看【圖1.jp

2018九屆藍橋省賽B一點反思+解題報告

划水!省三都不知道有沒有。誒難受,可能自己是那種不會比賽的人吧。溜了溜了。1.標題:第幾天2000年的1月1日,是那一年的第1天。那麼,2000年的5月4日,是那一年的第幾天?注意:需要提交的是一個整數

九屆藍橋省賽B 7.螺旋折線

標題:螺旋折線 如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。  對於整點(X, Y),我們定義它到原點的距離dis(X, Y)是從原點到(X, Y)的螺旋折線段的長度。  例如dis(0, 1)=3,

九屆藍橋省賽B 2. 明碼

明碼 漢字的字形存在於字型檔中,即便在今天,16點陣的字型檔也仍然使用廣泛。 16點陣的字型檔把每個漢字看成是16x16個畫素資訊。並把這些資訊記錄在位元組中。 一個位元組可以儲存8位資訊,用32個位元組就可以存一個漢字的字形了。 把每個位

20180401九屆藍橋省賽B-1幾天

標題:第幾天2000年的1月1日,是那一年的第1天。那麼,2000年的5月4日,是那一年的第幾天?注意:需要提交的是一個整數,不要填寫任何多餘內容。手算都可以,這裡直接貼上2013年 高斯日記那道題了。

20180401九屆藍橋省賽B-5快速排序

標題:快速排序。 以下程式碼可以從陣列a[]中找出第k小的元素。 它使用了類似快速排序中的分治演算法,期望時間複雜度是O(N)的。 請仔細閱讀分析原始碼,填寫劃線部分缺失的內容。 #includ

2018九屆藍橋C/C++A省賽(最後一

第十題 付賬問題   【題目描述】    幾個人一起出去吃飯是常有的事。但在結帳的時候,常常會出現一些爭執。    現在有 n 個人出去吃飯,他們總共消費了 S 元。其中第 i 個人帶了 ai 元。幸運的是,所有人帶的錢的總數是足夠付賬的,但現在問題來了:每個

【noip模擬賽】地球危機(2018九屆藍橋C/C++A省賽 三體攻擊)

題目描述 三體人將對地球發起攻擊。為了抵禦攻擊,地球人派出了 $A × B × C$ 艘戰艦,在太 空中排成一個 $A$ 層 $B$ 行 $C$ 列的立方體。其中,第 $i$ 層第 $j$ 行第 $k$ 列的戰艦(記為戰艦 $d(i, j,k)$)的生命值為 $d_{i, j,k}$。 三體人將會對地球發

2018九屆藍橋C/C++A省賽 面&部分題解

首先,原題:連結: https://pan.baidu.com/s/1UzRN6Mf2Dwp0263F-MMESg 密碼: 2ryh第一題標題:分數 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每項是前一項的一半,如果一共有20項, 求這個和是

2018九屆藍橋C/C++程式設計省賽解題

2018-4-14 感覺藍橋杯的風格變了,以前都是暴力搜尋類的題目比較多,然而這次並不是… 1.第幾天 2000年的1月1日,是那一年的第1天。 那麼,2000年的5月4日,是那一年的第幾天? 注意:需要提交的是一個整數,不要填寫任何多餘內容。

2018九屆藍橋C/C++ A省賽題解

第一題標題:分數1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每項是前一項的一半,如果一共有20項,求這個和是多少,結果用分數表示出來。類似:3/2當然,這只是加了前2項而已。分子分母要求互質。注意:需要提交的是已經約分過的分數,中間任何位置不能含有

【體驗】 九屆藍橋 C/C++ ----省賽(B

第九屆藍橋杯大賽個人賽省賽(軟體類) C/C++ 大學B組 考生須知: 考試開始後,選手首先下載題目,並使用考場現場公佈的解壓密碼解壓試題。 考試時間為4小時。時間截止後,提交答案無效。 在考試強制結束前,選手可以主動結束考試(需要身份驗證),結束考試後將無法繼續提