254 shades of grey
254 shades of grey
Description:
Why would we want to stop to only 50 shades of grey? Let's see to how many we can go.
Write a function that takes a number n as a parameter and return an array containing n shades of grey in hexadecimal code (#aaaaaa
for example). The array should be sorted in ascending order starting with #010101
, #020202
, etc. (using lower case letters).
using System;
public static class shadesOfGrey(int n) {
// returns n shades of grey in an array
}
As a reminder, the grey color is composed by the same number of red, green and blue: #010101
, #aeaeae
, #555555
, etc. Also, #000000
and #ffffff
are not accepted values.
When n is negative, just return an empty array. If n is higher than 254, just return an array of 254 elements.
Have fun
using System; using System.Collections.Generic; using System.Linq; public class Kata { public static string[] ShadesOfGrey(int n) { // returns n shades of grey in an array string[] array = null; if (n <= 0) { array = new string[] { }; } else { if (n > 254) { n = 254; } List<string> list = new List<string>(); string str = string.Empty; for (int i = 1; i <= n; i++) { str = i.ToString("x2"); str = "#" + string.Join(string.Empty, Enumerable.Repeat(str, 3)); list.Add(str); } array = list.ToArray(); } return array; } }
其他人的写法
using System; public class Kata{ public static string[] ShadesOfGrey(int n){ string[] arr = null; n = n <= 0 ? 0 : (n > 254 ? 254 : n); if (n > 0) { arr = new string[n]; for (int i = 1; i <= n; ++i) { arr[i-1] = string.Format("#{0:x2}{1:x2}{2:x2}", i, i, i); } } return arr; } }
下面这个还需要学习
Math.Min以及Math.Max的使用
以及Linq的使用,select之后可以直接转换为Array
using System; using System.Linq; public static class Kata { public static string[] ShadesOfGrey(int count) { if (count < 0) count = 0; return Enumerable .Range(1, Math.Min(count, 254)) .Select(x => string.Format("#{0:x2}{0:x2}{0:x2}", x)) .ToArray(); } }
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了