为正整数集定义以下迭代序列:
n - > n/2(n是偶数)n - > 3n + 1(n是奇数)
使用上面的规则并从13开始,我们生成以下序列:
13 40 20 10 5 16 8 4 2 1可以看出,这个序列(从13开始,1完成)包含10个术语.虽然尚未证实(Collatz问题),但据认为所有起始数字都是1.
哪个起始编号低于一百万,产生最长的链?
注意:链条启动后,条款允许超过一百万.
我尝试使用bruteforce方法在C中编写解决方案.但是,似乎我的程序在尝试计算113383时失速.请指教:)
#include <stdio.h>
#define LIMIT 1000000
int iteration(int value)
{
if(value%2==0)
return (value/2);
else
return (3*value+1);
}
int count_iterations(int value)
{
int count=1;
//printf("%d\n", value);
while(value!=1)
{
value=iteration(value);
//printf("%d\n", value);
count++;
}
return count;
}
int main()
{
int iteration_count=0, max=0;
int i,count;
for (i=1; i<LIMIT; i++)
{
printf("Current iteration : %d\n", i);
iteration_count=count_iterations(i);
if (iteration_count>max)
{ …Run Code Online (Sandbox Code Playgroud) 不知怎的,我似乎无法在C#的foreach循环中获得字符串替换.我的代码如下:
foreach (string s in names)
{
s.Replace("pdf", "txt");
}
Run Code Online (Sandbox Code Playgroud)
对于LINQ来说还是很新的,所以请原谅我,如果这听起来很业余;)
我的应用程序要求我将大量网页下载到内存中以进行进一步的解析和处理.最快的方法是什么?我目前的方法(如下所示)似乎太慢,偶尔会导致超时.
for (int i = 1; i<=pages; i++)
{
string page_specific_link = baseurl + "&page=" + i.ToString();
try
{
WebClient client = new WebClient();
var pagesource = client.DownloadString(page_specific_link);
client.Dispose();
sourcelist.Add(pagesource);
}
catch (Exception)
{
}
}
Run Code Online (Sandbox Code Playgroud) 我在C#中编写了一个程序,以便在一定范围内找到完美的数字,作为编程挑战的一部分.但是,我意识到计算10000以上的完美数字时速度非常慢.有没有找到完美数字的优化方法?我的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleTest
{
class Program
{
public static List<int> FindDivisors(int inputNo)
{
List<int> Divisors = new List<int>();
for (int i = 1; i<inputNo; i++)
{
if (inputNo%i==0)
Divisors.Add(i);
}
return Divisors;
}
public static void Main(string[] args)
{
const int limit = 100000;
List<int> PerfectNumbers = new List<int>();
List<int> Divisors=new List<int>();
for (int i=1; i<limit; i++)
{
Divisors = FindDivisors(i);
if (i==Divisors.Sum())
PerfectNumbers.Add(i);
}
Console.Write("Output =");
for (int i=0; i<PerfectNumbers.Count; i++)
{
Console.Write(" …Run Code Online (Sandbox Code Playgroud) 我做了一些谷歌搜索,似乎有很多工具用于使用c#阅读excel 2007电子表格.我想知道哪一个表现最好而且易于使用.
如何在 android 环境之外以编程方式从 apk 文件中获取 android 应用程序名称?我试过解析 androidmanifest.xml 但它只显示包名称(有时可能不是很丰富)
我在某种程度上无法确定字符串是否为换行符.我使用的字符串是从Ultraedit使用DOS终结者CR/LF写的文件中读取的.我认为这等同于C#中的"\ r \n"或Environment.NewLine.但是,当我执行这样的比较时,它似乎总是返回false:
if(str==Environment.NewLine)
Run Code Online (Sandbox Code Playgroud)
谁知道这里发生了什么?
我想对名为Records的数据表执行LINQ查询,并检查是否存在记录.如果它存在,我想找出它所在的行.我怎么能这样做呢?
我想在添加system.linq命名空间后在我的数据表上做一个.where但该方法似乎不存在.请指教
PS:我在2010年使用c#
我正在使用以下代码通过串行端口接收十六进制数据,当它们是同一传输的一部分时,似乎这些传输中的一些被分解为2行.如何确保正确接收每个传输?
public void Receiver(object sender, SerialDataReceivedEventArgs e)
{
string data;
do
{
data = COMPort.ReadExisting();
} while (COMPort.BytesToRead != 0);
RxARR = data.ToCharArray().ToList();
Dispatcher.Invoke(new MethodInvoker(Display)); // Start "Display" on the UI thread
}
Run Code Online (Sandbox Code Playgroud) 我可以在C#中使用什么理想的数据结构来存储由1个浮点数和3个字符串字段(1000+行)组成的数据?我希望它能够轻松地将结构序列化为文件,并且可以轻松访问以进行更新.
c# ×8
algorithm ×1
android ×1
c ×1
collatz ×1
excel-2007 ×1
foreach ×1
linq ×1
newline ×1
optimization ×1
serial-port ×1
string ×1
tcp ×1
web-crawler ×1