2的倍数相加后如何还原

某一论坛有一个问 题:

 

 

 解决此问题使用C#的&方法即可。如这题4+16+32=52:

  

复制代码
List<int> Basic = new List<int>();
        Basic.Add(2);
        Basic.Add(4);
        Basic.Add (8);
        Basic.Add (16);
        Basic.Add (32);
        Basic.Add (64);
        //...


        int sum = 52;
         //2+4+8+16=30
        
//32+8=40
        
//4+16+32=52

        string s = string.Empty;
        Basic.ForEach(delegate(int i)
        {
           if (i== (sum & i))
               s = s+ "+" + i.ToString();
        });

        if (s.Length > 0)
          s=  s.Substring(1);
        objInsusJsUtility.JsAlert(s + "=" + sum.ToString ());
复制代码

 

执行结果:

 

 

 

posted @   Insus.NET  阅读(733)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示