Я предположил бы, что самое легкое для чтения реализации будет чем-то как:
public int sum(int number)
{
int ret = 0;
foreach (char c in Math.Abs(number).ToString())
ret += c - '0';
return ret;
}
Это работает и довольно легко читать. BTW: Преобразовать. ToInt32 ('3') дает 51, не 3. Преобразовать. ToInt32 ('3' - '0') дает 3.
я предположил бы, что самая быстрая реализация является arithmetric решением Greg Hewgill.
Краткий ответ: 16 x 16 пикселей.
Длинный ответ:
.ico файлы на самом деле могут содержать несколько изображений с разной глубиной цвета - вы можете предоставить 16x16, 32x32, 48x48 и 64x64 в одном файле, и ОС выберет лучшее для отображения.
Конечно, чтобы сохранить небольшой размер файла, вы не должны помещать туда слишком много файлов, но если вы думаете, что люди могут сохранять ссылку на своем рабочем столе (скажем, это веб-приложение), то это, вероятно, хороший ход.